首页 新闻 会员 周边 捐助

WinForms中的dataGridView控件

0
悬赏园豆:10 [已解决问题] 解决于 2010-11-05 13:34

最近遇到了一个问题就是,如何禁用用户选中dataGridView中的行,我知道设置RowHeadersVisible可以把“行头”给隐藏掉,但是我不行那样做,至于提出这个问题是应为我测试的程序报错,一下是部分代码:

代码
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
//for(int a =0; a <=dataGridView1.Columns.Count-1;a++)
//{
// MessageBox.Show(dataGridView1.Rows[e.RowIndex].Cells[a].Value.ToString());
//}

switch (dataGridView1.Columns[e.ColumnIndex].HeaderText)
{
case "详情":
Student_list stu_lst
= new Student_list(Convert.ToInt32(dataGridView1.Rows[e.RowIndex].Cells[3].Value.ToString()));
stu_lst.ShowDialog();
break;
case "修改":
Class_Detail cls_del
= new Class_Detail(Convert.ToInt32(dataGridView1.Rows[e.RowIndex].Cells[3].Value.ToString()));
//cls_del.Controls["groupBox1"].Controls["textBox1"].Text = dataGridView1.Rows[e.RowIndex].Cells[4].Value.ToString();
//cls_del.Controls["groupBox1"].Controls["textBox2"].Text = dataGridView1.Rows[e.RowIndex].Cells[5].Value.ToString();
cls_del.ShowDialog();
Bind();
break;
case "删除":
DialogResult MsgBoxResult
= MessageBox.Show("是否要删除此条信息?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button2);
if (MsgBoxResult == DialogResult.Yes)//如果对话框的返回值是YES(按"Y"按钮)
{
Class cls
= new Class();
cls.Delete(Convert.ToInt32(dataGridView1.Rows[e.RowIndex].Cells[
2].Value.ToString()));
Bind();
}
break;
default:
break;
}

 

 

如果我选中一行的话就报索引超出范围。。。

like%'远远'%的主页 like%'远远'% | 小虾三级 | 园豆:635
提问于:2010-11-05 11:35
< >
分享
最佳答案
0

不是可以设置选中模式为cell吗?

收获园豆:10
Launcher | 高人七级 |园豆:45050 | 2010-11-05 11:46
是可以的,不过他不是单元格,每行的最前面都有一个可以选择整行的,我想禁用选择那个东东...(*^__^*) 嘻嘻……
like%'远远'% | 园豆:635 (小虾三级) | 2010-11-05 11:51
@like%'远远'%:SelectionMode = CellSelect
Launcher | 园豆:45050 (高人七级) | 2010-11-05 12:00
但是它与这个事件有冲突(即报错) CellClick,点击后依然报错
like%'远远'% | 园豆:635 (小虾三级) | 2010-11-05 12:15
@like%'远远'%:不是冲突,是你点击RowHeader的时候,它同样会激发CellClick事件,RowHeader也是Cell.所以,你需要在CellClient事件中先过滤掉RowHeader的Client事件,如下: if (e.ColumnIndex < 0 || e.RowIndex < 0) return;
Launcher | 园豆:45050 (高人七级) | 2010-11-05 13:08
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册