当从组合框中选择索引时,有一个代码可以在 datagridview 中显示行。但是在重置时,它comboBox1.SelectedItem = null给出了一个错误。为什么它给出是可以理解的,但如何解决它却不是。
for (int i = 0; i < dataGridView1.Rows.Count - 1; i++)
{
dataGridView1.CurrentCell = null;
dataGridView1.Rows[i].Visible = false;
for (int c = 0; c < dataGridView1.Columns.Count; c++)
{
if(dataGridView1[c, i+1].RowIndex.ToString() == comboBox1.SelectedItem.ToString())
{
dataGridView1.Rows[i].Visible = true;
break;
}
}
}
好吧,如何决定是什么意思……在第一行,甚至在上面的代码之前,检查 null,但如果没有选择,你根本不需要这两个循环,对吧?
一个不太正确的选项是用 null 传播替换检查(在 c# 6.0 及更高版本中):
(而且我不明白一些事情:您同时拥有 RowIndex 和 SelectedItem - 它可能都是 int,为什么要转换为字符串?)
看起来你想要这样的逻辑:
而且,没有人会打扰您在退出之前定义自定义逻辑: