zoukankan      html  css  js  c++  java
  • 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 文件 绑定到相应的 事件上去.

     

  • 相关阅读:
    Java蛇形数组的简单实现代码
    Android Studio生成javadoc出错的解决办法
    AngularJS指令嵌套时link函数执行顺序的问题
    [转]如果我有jQuery背景,我应该如何切换到AngularJS的思维模式?
    扩展ViewFlow避免和ViewPager滑动冲突,同时支持无限循环,并完美和CircleFlowIndicator结合
    人机交互的新方向:智能聊天机器人
    利用python自动清除Android工程中的多余资源
    巧用svn create patch(打补丁)方案解决定制版需求
    【Android开发坑系列】之经常被忽略的背景图片内存泄露
    【Android开发坑系列】之try-catch
  • 原文地址:https://www.cnblogs.com/likehc/p/6729643.html
Copyright © 2011-2022 走看看