winform代码生成器(三)

代码下载 地址 http://pan.baidu.com/s/1nuZjyat

接上面的两篇.

用户有时对 从表的 排版不喜欢,可以因某些字太长,需要拉长一些,有些则需要隐藏.

有什么办法呢? 我的思路是,把从表的 GridColumn信息保存到与自己名称对应的xml文件内,窗体初始化化时,读取保存的文件,初始化 从表 的布局.

如果不知道怎么读写XML文件,我之前写了一篇 <XML文件的一些操作> 的文章,可以看下 .

http://www.cnblogs.com/likehc/p/6691185.html

说思路

  1. 写一个私有方法,读取从表的 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 文件 绑定到相应的 事件上去.

 

原文地址:https://www.cnblogs.com/likehc/p/6729643.html