我有一个c#项目,在这个项目中我有一个带有ultragrid的对话框。网格有3组,每组有4列以上。 Columns of the Ultragrid
我可以移动列并更改列的顺序。一切正常。最后,我想保存列的定义,如果列是隐藏的和列的位置。
我遍历列列表并保存column.Hidden属性和column.Header.VisiblePosition属性。问题是visiblePosition值与网格中的位置不匹配,您可以在UI中看到。
我向左右移动了一些列,但visiblePosition与开头相同。用户界面显示每列的正确顺序,列位置已更改,但属性值未发生变化。
可能存在问题,因为我使用的是columnGroups。
谢谢
答案 0 :(得分:3)
UltraWinGrid有两种解决此类问题的方法
它们是SaveAsXml
类中的LoadFromXml
和DisplayLayout
。
您可以使用它们来保存和恢复网格的布局 例如,在表单的Dispose事件中,您可以添加对
的调用public void SaveLayout(UltraGrid grd, string layoutFile)
{
if (grd.DataSource != null)
grd.DisplayLayout.SaveAsXml(layoutFile, PropertyCategories.All);
}
在网格的InitializeLayout
事件中,您可以使用
public void LoadLayout(UltraGrid grd, string layoutFile)
{
if (File.Exists(layoutFile))
grd.DisplayLayout.LoadFromXml(layoutFile, PropertyCategories.All);
}
根据您的具体需求,您可以微调PropertyCategories枚举,以便仅选择要保存/恢复的属性组。