作者: MSky
查看: 1336|回复: 0
打印 上一主题 下一主题

个人使用CSkin控件库过程中遇到的一些问题记录,随时更新

[复制链接]
跳转到指定楼层
楼主
MSky 发表于 2016-12-3 15:52:47 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
查看: 1336|回复: 0
其实挺喜欢这款控件库,记录一下遇到的bug,希望能早日修复吧
一、SkinDataGridview
鼠标悬浮于ColumnHeader时引发索引超出范围异常,该异常由VS捕获,实际使用中暂未发现影响


当SkinDataGridview绑定有数据源(DataTable),通过后台线程删除DataTable中数据时,SkinDataGridview中数据会跟随数据源减少,此时如果进行暴力操作(SkinDataGridview中乱点,排序,改变窗体大小等),会有较大概率触发如下异常
System.IndexOutOfRangeException: 索引超出了数组界限。
   在 System.Data.Common.BooleanStorage.Get(Int32 record)
   在 System.Data.DataRow.get_Item(DataColumn column, DataRowVersion version)
   在 System.Windows.Forms.DataGridView.DataGridViewDataConnection.GetValue(Int32 boundColumnIndex, Int32 columnIndex, Int32 rowIndex)



二、SkinSplitContainer
如图界面设计

为了描述清楚,从左到右的4个SplitContainer分别命名为1.2.3.4,其中3号会向右折叠,折叠后右侧4号区域消失,这时如果关闭窗体,则异常
临时解决办法:FormClosing事件中处理
private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (MessageBox.Show("是否确认退出?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
            {
                if (三号.Panel2.Width == 0)//这里三号拆分器拆分的是中间区域与右侧区域,中间区域为panel1,右侧区域为panel2,当右侧区域被折叠后,panel2宽度为0
                {
                    三号.SplitterDistance -= 10;//将三号拆分器位置左移几个像素位置,保证panel2的宽度>0就不会异常了
                }
            }
            else
            {
                e.Cancel = true;
            }
        }

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播
回复 论坛版权

使用道具 举报

您需要登录后才可以回帖 登录 | 加入CSkin博客

本版积分规则

QQ|申请友链|小黑屋|手机版|Archiver|CSkin ( 粤ICP备13070794号

Powered by Discuz! X3.2  © 2001-2013 Comsenz Inc.  Designed by ARTERY.cn
GMT+8, 2024-4-27 00:54, Processed in 0.535696 second(s), 32 queries , Gzip On.

快速回复 返回顶部 返回列表