请问C#连接数据库dataGridView_CellContentClick索引超出范围的问题! 谢谢!
privatevoiddataGridView2_CellContentClick(objectsender,DataGridViewCellEventArgse){te...
private void dataGridView2_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
textBox1.Text = dataGridView2.SelectedCells[0].Value.ToString();
textBox2.Text = dataGridView2.SelectedCells[1].Value.ToString();
textBox3.Text = dataGridView2.SelectedCells[2].Value.ToString();
textBox4.Text = dataGridView2.SelectedCells[3].Value.ToString();
textBox5.Text = dataGridView2.SelectedCells[4].Value.ToString();
}
错误提示是索引超出范围。必须为非负值并小于集合大小。
参数名: index
谢谢! 展开
{
textBox1.Text = dataGridView2.SelectedCells[0].Value.ToString();
textBox2.Text = dataGridView2.SelectedCells[1].Value.ToString();
textBox3.Text = dataGridView2.SelectedCells[2].Value.ToString();
textBox4.Text = dataGridView2.SelectedCells[3].Value.ToString();
textBox5.Text = dataGridView2.SelectedCells[4].Value.ToString();
}
错误提示是索引超出范围。必须为非负值并小于集合大小。
参数名: index
谢谢! 展开
5个回答
展开全部
从上图可以看出,你的表格点击选择单元格的方式是单个格,而不是整条记录行。你只选择了1个格,那么cells集合的数量是1,所以cells[0]可以读取,但1-4就超出索引
更多追问追答
追问
嗯,改了整行选择了,也没有索引错误了,谢谢!
我想再问问,有时点击选择一行的时候,为什么textBox有时没有返回选中值的?要多点击几下才行~ 有时会这样有时又不会~
追答
通过属性设置框。就是右键点击表格,选属性,通过属性窗口选择记录选择方式。属性名称是selectionMode ,设置为FullRowSelect
展开全部
这是因为你dataview如果没有数据显示,你一点击就提示索引超出范围;
加入一个判断dataview是否为空,再对textbox赋值;
private void dataGridView2_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if(dataGridView2.Rows.Count==0)
{
MessageBox.Show("没有数据!");
return;
}
else
{
textBox1.Text = dataGridView2.SelectedCells[0].Value.ToString();
textBox2.Text = dataGridView2.SelectedCells[1].Value.ToString();
textBox3.Text = dataGridView2.SelectedCells[2].Value.ToString();
textBox4.Text = dataGridView2.SelectedCells[3].Value.ToString();
textBox5.Text = dataGridView2.SelectedCells[4].Value.ToString();
}
}
加入一个判断dataview是否为空,再对textbox赋值;
private void dataGridView2_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if(dataGridView2.Rows.Count==0)
{
MessageBox.Show("没有数据!");
return;
}
else
{
textBox1.Text = dataGridView2.SelectedCells[0].Value.ToString();
textBox2.Text = dataGridView2.SelectedCells[1].Value.ToString();
textBox3.Text = dataGridView2.SelectedCells[2].Value.ToString();
textBox4.Text = dataGridView2.SelectedCells[3].Value.ToString();
textBox5.Text = dataGridView2.SelectedCells[4].Value.ToString();
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这么改改!就好了!
textBox1.Text = dataGridView2.SelectedCells["学号"].Value.ToString();
textBox2.Text = dataGridView2.SelectedCells["姓名"].Value.ToString();
textBox3.Text = dataGridView2.SelectedCells["班级"].Value.ToString();
textBox4.Text = dataGridView2.SelectedCells["学校"].Value.ToString();
textBox5.Text = dataGridView2.SelectedCells["入学年份"].Value.ToString();
textBox1.Text = dataGridView2.SelectedCells["学号"].Value.ToString();
textBox2.Text = dataGridView2.SelectedCells["姓名"].Value.ToString();
textBox3.Text = dataGridView2.SelectedCells["班级"].Value.ToString();
textBox4.Text = dataGridView2.SelectedCells["学校"].Value.ToString();
textBox5.Text = dataGridView2.SelectedCells["入学年份"].Value.ToString();
追问
不行~
试了一下,就会提示错误
错误1与“System.Windows.Forms.DataGridViewSelectedCellCollection.this[int]”最匹配的重载方法具有一些无效参数
错误2参数“1”: 无法从“string”转换为“int”
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
检查一下dataGridView2.SelectedCells[],有5项吗
逐项注释掉试试:)
逐项注释掉试试:)
来自:求助得到的回答
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
认识一下吧,我也正在准备复试,一样的华工啊!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询