我有这个问题很长一段时间。
我打算做的是,如果所有cell[0]
都有值,它将触发一个事件。如果有null
,则会更改TextBox
的值。
这是我的代码:
private void button1_Click(object sender, EventArgs e)
{
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
if (dataGridView1.Rows[i].Cells[0].Value.ToString() == null)
{
textbox.Text = "null";
break;
}
else
{
MessageBox.Show("No null");
}
}
但是这里发生的事情是例如我在DataGridView
中有3行,如果第一行不为空,它将在MessageBox
午餐。我希望在所有行的单元格都不为空时触发MessageBox
。
答案 0 :(得分:5)
使用LINQ和Any
方法:
<textarea ng-model="res.Value"
ng-change="vm.changed(vm.resourceGridResources.Resources[$parent.$index].Resources[0].Value)"
style="min-width: 300px">
</textarea>
最好使用string.IsNullOrWhiteSpace
:
if (dataGridView1.Rows.Cast<DataGridViewRow>().Any(c => c.Cells[0].Value?.ToString() == null))
{
textbox.Text = "null";
}
else
{
MessageBox.Show("No null");
}
答案 1 :(得分:2)
试试这个:
bool anyNull = false;
for (int i = 0; i<dataGridView1.Rows.Count; i++)
{
if (dataGridView1.Rows[i].Cells[0].Value.ToString() == null)
{
textbox.Text = "null";
anyNull = true;
break;
}
}
if (!anyNull)
MessageBox.Show("");
答案 2 :(得分:0)
试试这个:
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
if (dataGridView1.Rows[i].Cells[0].Value.ToString() == null)
{
textbox.Text = "null";
break;
}
}
if(textbox.Text != "null")
{
MessageBox.Show("No null");
}
答案 3 :(得分:-1)
您可以尝试以下代码,但不建议使用goto
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
if (dataGridView1.Rows[i].Cells[0].Value.ToString() == null)
{
textbox.Text = "null";
goto a;
}
}
a: MessageBox.Show("Null");