【发布时间】:2013-04-08 20:31:35
【问题描述】:
我在当前的 WinForms 项目中使用 DevExpress 工具。我正在处理的页面有一个用于子机构的网格,该网格是否可见取决于名为IsParentAgency 的某个标志。如果该机构是一个父机构,那么该网格应该对该机构的所有子机构都是可见的。如果不是,那么网格应该是不可见的。
不过,无论我做什么,我似乎都无法让网格可见。即使在我给它一个数据源、强制它初始化并填充列之后。我什至尝试过直接设置SubAgenciesGridControl.Visible = true。无论我做什么,它总是将 Visible 设置为 false(即使在调试 SubAgenciesGridControl.Visible = true 之后的行时)。
这是我用来设置网格并切换其可见性的代码(我在 WinForms 之上使用 MVP 模式):
SubAgenciesGridControl.DataSource = Model.SubAgencies;
SubAgenciesGridControl.ForceInitialize();
SubAgenciesGridView.PopulateColumns();
SubAgenciesGridControl.Visible = Model.IsParentAgency;
如何让网格可见?它正在将其添加到控件中,如 cmets 中所示。
【问题讨论】:
-
您确定它不只是隐藏在另一个控件后面或设置为使其超出查看范围的偏移量吗?尝试永远不要让它不可见,看看它是否出现。 (在设计器中设置 visible=true)您可能需要将其移动到任何其他控件的前面。
-
Visible在设计器中设置为true,前面没有其他控件了。
-
gridcontrol是否添加到控件的form collention中? (
this.Controls) -
你的意思是这样的:
this.ParentAgencyTableLayout.Controls.Add(this.SubAgenciesGridControl, 0, 1); -
控件仍然有可能只是隐藏了。您是否考虑过使用布局管理器,例如 DevExpress LayoutControl?在这种情况下,您需要设置包含子网格的 LayoutControlItem 的可见性,并且布局会调整以适应所有内容。
标签: c# winforms devexpress xtragrid