winform代码生成器(三)
代码下载 地址 http://pan.baidu.com/s/1nuZjyat
接上面的两篇.
用户有时对 从表的 排版不喜欢,可以因某些字太长,需要拉长一些,有些则需要隐藏.
有什么办法呢? 我的思路是,把从表的 GridColumn信息保存到与自己名称对应的xml文件内,窗体初始化化时,读取保存的文件,初始化 从表 的布局.
如果不知道怎么读写XML文件,我之前写了一篇 <XML文件的一些操作> 的文章,可以看下 .
http://www.cnblogs.com/likehc/p/6691185.html
说思路
- 写一个私有方法,读取从表的 GridColumn位置信息,当窗体触发Column 宽度变化,或是隐藏部位Column里,触发
2.设置一个窗体内的 共公bool变量,当其值为true时,才可读写.(防止窗体加载时,出现不必要的XML读写)
要用到的一些事件 从表显示的内容 放在了GridColumn gridView1 控件内,
//位置改变,如顺序, 是否隐藏 private void gridView1_ColumnPositionChanged(object sender, EventArgs e) //宽度变化 private void gridView1_ColumnWidthChanged(object sender, DevExpress.XtraGrid.Views.Base.ColumnEventArgs e) //初始化从表 private void 窗体_Load(object sender, EventArgs e) //使XLM可读写(防止初始化时频繁读写) private void 窗体_Shown(object sender, EventArgs e) //使XLM不可写 private void窗体_FormClosing(object sender, FormClosingEventArgs e) //上下调整 从表的位置 private void SplitContainer_Panel2_ClientSizeChanged(object sender, EventArgs e)
说思路:
窗体初始化化时,读取指定目录中与自己名称相同的xml文件(如果没有则使用默认设置), 如下
FixedPane 判断是否启用 手动设置功能,如果为false 则 不保存用户的设置
Items 节点,存放 数据库的字段, VisibleIndex 显示顺序,如果为-1则不显示, Width为宽度
PanelHeight 保存从表的高度,
用户 修改了 字段的宽度,或隐藏/显示字段, 或修改从表高度,且FixedPane值为Enable,则会重写xml文件,保存现在的状态.
如果不想保存 用户的设置, 把FixedPane 设为非Enable 或删除全部内容(不能删除xml文件)即可,
<?xml version="1.0" encoding="utf-8"?> <Form> <FixedPane>Enable</FixedPane> <Items> <Titles FieldName="Id" VisibleIndex="2" Width="86" /> <Titles FieldName="InnerId" VisibleIndex="0" Width="86" /> <Titles FieldName="GoodsName" VisibleIndex="1" Width="86" /> <Titles FieldName="Unit" VisibleIndex="3" Width="86" /> <Titles FieldName="UnitPrice" VisibleIndex="4" Width="86" /> <Titles FieldName="Number" VisibleIndex="5" Width="78" /> <Titles FieldName="TotalPrice" VisibleIndex="6" Width="88" /> <Titles FieldName="Remark" VisibleIndex="7" Width="88" /> <Titles FieldName="IsDelete" VisibleIndex="-1" Width="98" /> </Items> <PanelHeight>155</PanelHeight> </Form>
最后把 .cs 里面的 方法 通过 Designer.cs 文件 绑定到相应的 事件上去.