2014-03-24 21 views
1

开始追捕我上可见的伪/真问题之前:在WinForms DataGridView中设置非自动列的Visible属性的稳定性如何?

如何稳定是设置非自动列的Visible属性 一个WinForms DataGridView的?

我已经把所有的几年他们现有的,与FlowLayoutPanel的和TableLayoutPanel中摆弄周围在设计时的后的WinForms曾与陌生的文物不够的问题(例如仍然得到Visual Studio设计心烦,改变对ForeColor一个TextBox并不总是工作等),所以我习惯于质疑框架。

在我的具体情况下,我在backgroundWorker_RunWorkerCompletedmyCheckBox_CheckedChanged事件中设置DataGridView上的最后两列的Visible属性(设计时所有列,绑定数据是内存对象的集合)。

观察:

    backgroundWorker_RunWorkerCompleted
  1. ,设置Visible = False隐藏列,但后来设置Visible = True没有透露它在myCheckBox_CheckedChanged
  2. ,在所有设置Visible = myCheckBox.Checked没有任何影响(不隐藏或揭示)

在深入研究之前,得到一个Short, Self Contained, Correct Example出来:通常应该有多稳定?

回答

1

我个人对此的体验是,像界限DataGridView这样的控件的可见性可能是令人生气的。我会使用Update()方法,这可能会解决可见性问题。如果在表单上失败了this.Update(),并最终使用this.Refresh()进行完整表单刷新。

CheckBox的可见度而言,如果CheckBox绑定到某些基础数据源,则可能会阻止这种更新。但是,做

private void checkBox_CheckedChanged(object sender, EventArgs e) 
{ 
    checkBox.Visible = checkBox.Checked; 
} 

应该没问题。我希望这有帮助。

+0

我打算深入一些。感谢您的提示。 –

+0

使用'Update()/ Refresh()'有没有什么好运气? – MoonKnight

+0

还没有。我现在正处于另一个项目中。 –

相关问题