首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

两行超级简略的代码让你的程序直接崩溃,请指出原因

2013-08-22 
两行超级简单的代码让你的程序直接崩溃,请指出原因!两行超级简单的代码直接让你的程序崩溃,大家分析一下原

两行超级简单的代码让你的程序直接崩溃,请指出原因!
两行超级简单的代码直接让你的程序崩溃,大家分析一下原因!
datagridview控件的两个时间!
鼠标移动到单元格上默认选中这一行,离开的时候不选中!代码如下:


大家分析一下原因! DataGridView 控件
[解决办法]

private void dataGridView_CellMouseEnter(object sender, DataGridViewCellEventArgs e)
{
    if (e.RowIndex != -1)
        dataGridView.Rows[e.RowIndex].Selected = true;
}
 
private void dataGridView_CellMouseLeave(object sender, DataGridViewCellEventArgs e)
{
    if (e.RowIndex != -1)
        dataGridView.Rows[e.RowIndex].Selected = false;//离开之后不选中
}

[解决办法]
错误提示已经给出原因你了,当数据为空或你鼠标移到列头时索引为-1,索引超出范围。
[解决办法]
你的DataGridView没有数据,而你强行使用-1行。
使用try{}catch{}抛出这个错误就好了。
[解决办法]
引用:

private void dataGridView_CellMouseEnter(object sender, DataGridViewCellEventArgs e)
{
    if (e.RowIndex != -1)


        dataGridView.Rows[e.RowIndex].Selected = true;
}
 
private void dataGridView_CellMouseLeave(object sender, DataGridViewCellEventArgs e)
{
    if (e.RowIndex != -1)
        dataGridView.Rows[e.RowIndex].Selected = false;//离开之后不选中
}


+1
[解决办法]
rowindex有可能是小于0,调试都不知道自己看看rowindex的值
[解决办法]
引用:

private void dataGridView_CellMouseEnter(object sender, DataGridViewCellEventArgs e)
{
    if (e.RowIndex != -1)
        dataGridView.Rows[e.RowIndex].Selected = true;
}
 
private void dataGridView_CellMouseLeave(object sender, DataGridViewCellEventArgs e)
{
    if (e.RowIndex != -1)
        dataGridView.Rows[e.RowIndex].Selected = false;//离开之后不选中
}


正解。同样也可以用e.RowIndex>0来判断

热点排行