c#中datagridview失去输入焦点时判断内容
RT,代码段如下:for(inti=0;i<dataGridView1.Rows.Count-1;i++){if(单元格失去输入焦点时代码1){if(!(Regex.Ma...
RT,代码段如下:
for (int i = 0; i < dataGridView1.Rows.Count - 1; i++)
{
if (单元格失去输入焦点时 代码1)
{
if (!(Regex.Match(dataGridView1.Rows[i].Cells[2].Value.ToString(), "^\\d+$").Success) || (Regex.Match(dataGridView1.Rows[i].Cells[3].Value.ToString(), "^\\d+$").Success) || (Regex.Match(dataGridView1.Rows[i].Cells[4].Value.ToString(), "^\\d+$").Success) || (Regex.Match(dataGridView1.Rows[i].Cells[6].Value.ToString(), "^\\d+$").Success) || (Regex.Match(dataGridView1.Rows[i].Cells[7].Value.ToString(), "^\\d+$").Success) || (Regex.Match(dataGridView1.Rows[i].Cells[8].Value.ToString(), "^\\d+$").Success))
{
if ((dataGridView1.Rows[i].Cells[0].Value != null) && (dataGridView1.Rows[i].Cells[3].Value != null) && (dataGridView1.Rows[i].Cells[0].Value.ToString() != " ") && (dataGridView1.Rows[i].Cells[3].Value.ToString() != " "))
{
//MessageBox.Show(dataGridView1.Rows[i].Cells[3].Value.ToString());
NewConn.CommandText = "insert into fastReport(姓名,性别,年龄,学号,班级,籍贯,身高,体重,胸围) VALUES('" + dataGridView1.Rows[i].Cells[0].Value + "','" + dataGridView1.Rows[i].Cells[1].Value + "','" + dataGridView1.Rows[i].Cells[2].Value + "','" + dataGridView1.Rows[i].Cells[3].Value + "','" + dataGridView1.Rows[i].Cells[4].Value + "','" + dataGridView1.Rows[i].Cells[5].Value + "','" + dataGridView1.Rows[i].Cells[6].Value + "','" + dataGridView1.Rows[i].Cells[7].Value + "','" + dataGridView1.Rows[i].Cells[8].Value + "')";
NewConn.ExecuteNonQuery();
}
else
{
MessageBox.Show("姓名或学号为空,请重新输入!");
return;
}
return;
}
else
单元格失去输入焦点时判断内容是否整数,不是的话就返回并清空单元格内容 代码2
}
}
小弟就是想知道上面代码1和代码2的代码。中间的代码还不太完善,不用管,知道的麻烦说下,不胜感激!
简单地说就是要在datagridview中输入多行多列数据,并且对当前单元格输入完成后失去焦点时内容进行判断,不符合条件就清除当前单元格内容,当所有输入(有的单元格内容可以为空)都没有错时将数据保存到数据库和listview中。我要的就是判断和清除如何实现,最好有代码。再看不懂就是你的问题了,谢谢!
据说datagridview没有键盘响应事件,现在就做成了全部输入完成后用其它事件来判断了 展开
for (int i = 0; i < dataGridView1.Rows.Count - 1; i++)
{
if (单元格失去输入焦点时 代码1)
{
if (!(Regex.Match(dataGridView1.Rows[i].Cells[2].Value.ToString(), "^\\d+$").Success) || (Regex.Match(dataGridView1.Rows[i].Cells[3].Value.ToString(), "^\\d+$").Success) || (Regex.Match(dataGridView1.Rows[i].Cells[4].Value.ToString(), "^\\d+$").Success) || (Regex.Match(dataGridView1.Rows[i].Cells[6].Value.ToString(), "^\\d+$").Success) || (Regex.Match(dataGridView1.Rows[i].Cells[7].Value.ToString(), "^\\d+$").Success) || (Regex.Match(dataGridView1.Rows[i].Cells[8].Value.ToString(), "^\\d+$").Success))
{
if ((dataGridView1.Rows[i].Cells[0].Value != null) && (dataGridView1.Rows[i].Cells[3].Value != null) && (dataGridView1.Rows[i].Cells[0].Value.ToString() != " ") && (dataGridView1.Rows[i].Cells[3].Value.ToString() != " "))
{
//MessageBox.Show(dataGridView1.Rows[i].Cells[3].Value.ToString());
NewConn.CommandText = "insert into fastReport(姓名,性别,年龄,学号,班级,籍贯,身高,体重,胸围) VALUES('" + dataGridView1.Rows[i].Cells[0].Value + "','" + dataGridView1.Rows[i].Cells[1].Value + "','" + dataGridView1.Rows[i].Cells[2].Value + "','" + dataGridView1.Rows[i].Cells[3].Value + "','" + dataGridView1.Rows[i].Cells[4].Value + "','" + dataGridView1.Rows[i].Cells[5].Value + "','" + dataGridView1.Rows[i].Cells[6].Value + "','" + dataGridView1.Rows[i].Cells[7].Value + "','" + dataGridView1.Rows[i].Cells[8].Value + "')";
NewConn.ExecuteNonQuery();
}
else
{
MessageBox.Show("姓名或学号为空,请重新输入!");
return;
}
return;
}
else
单元格失去输入焦点时判断内容是否整数,不是的话就返回并清空单元格内容 代码2
}
}
小弟就是想知道上面代码1和代码2的代码。中间的代码还不太完善,不用管,知道的麻烦说下,不胜感激!
简单地说就是要在datagridview中输入多行多列数据,并且对当前单元格输入完成后失去焦点时内容进行判断,不符合条件就清除当前单元格内容,当所有输入(有的单元格内容可以为空)都没有错时将数据保存到数据库和listview中。我要的就是判断和清除如何实现,最好有代码。再看不懂就是你的问题了,谢谢!
据说datagridview没有键盘响应事件,现在就做成了全部输入完成后用其它事件来判断了 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询