row.Visible = false;抱不能将未提交的新行设置为不可见是怎么回事
时间: 2024-02-21 13:57:41 浏览: 19
这个问题出现的原因是,当你向 DataGridView 控件中添加新行时,这些行是处于未提交状态的。如果你尝试将这些未提交的新行设置为不可见,就会出现异常。
解决这个问题的方法是,你可以在添加新行之前,先将 DataGridView 控件的 DataGridView.AllowUserToAddRows 属性设置为 false,这样就可以禁止用户手动添加新行,也就避免了未提交新行的出现。
示例代码:
```
// 禁止用户手动添加新行
dataGridView1.AllowUserToAddRows = false;
// 向 DataGridView 控件中添加新行
DataGridViewRow row = new DataGridViewRow();
dataGridView1.Rows.Add(row);
// 将新行设置为不可见
row.Visible = false;
```
在上面的示例代码中,我们先将 DataGridView.AllowUserToAddRows 属性设置为 false,然后再向控件中添加新行。这样,新行就会被添加到 DataGridViewRowCollection 集合中,而不是作为未提交的新行存在。接下来,我们就可以将新行设置为不可见,而不会出现异常。
相关问题
function comboBoxTypeChange(index){ line1.visible=false line2.visible=false line3.visible=false line4.visible=false line5.visible=false line6.visible=false console.log("comboBoxTypeChange:"+index) if(index===0){ line1.visible=true line2.visible=true line3.visible=true line4.visible=true line5.visible=true line6.visible=true }else if(index===1){ line1.visible=true }else if(index===2){ line2.visible=true }else if(index===3){ line3.visible=true }else if(index===4){ line4.visible=true }else if(index===5){ line5.visible=true }else if(index===6){ line6.visible=true } }优化代码
可以将 `line1` 到 `line6` 存储在一个数组中,然后用循环来设置它们的可见性。优化后代码如下:
```
function comboBoxTypeChange(index) {
const lines = [line1, line2, line3, line4, line5, line6];
lines.forEach(line => line.visible = false);
console.log("comboBoxTypeChange:" + index);
if (index === 0) {
lines.forEach(line => line.visible = true);
} else if (index >= 1 && index <= 6) {
lines[index - 1].visible = true;
}
}
```
这样代码更简洁,可读性更好。同时也支持更多的选项,如果选项增加了,只需在 `lines` 数组中添加对应的元素即可。
if (panel_attendanceSubMenu.Visible == true) panel_attendanceSubMenu.Visible = false; if (panel_deptSubMenu.Visible == true) panel_deptSubMenu.Visible = false; if (panel_salarySubMenu.Visible == true) panel_salarySubMenu.Visible = false; if (panel_teacherSubMenu.Visible == true) panel_teacherSubMenu.Visible = false; if (pan1_Incentive.Visible == true) pan1_Incentive.Visible = false;在winform中什么意思
这段代码的意思是,如果 panel_attendanceSubMenu、panel_deptSubMenu、panel_salarySubMenu、panel_teacherSubMenu 或 pan1_Incentive 中有任何一个控件是可见的,就将它们设为不可见。这段代码通常用于隐藏多个子菜单或子控件。