代码下载 地址 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 文件 绑定到相应的 事件上去.

winform代码生成器(三)的更多相关文章

  1. winform代码生成器(一)

    (PS  sqlhelper的文件 竟放到 类库里了,第二篇已做了分离,边做边写的 ^_^) 做 Winform  项目时,要拖很多控件,感觉在做重复的事,那就应该用程序来完成,那就自己写一个吧.-- ...

  2. 小菜学习Winform(三)Socket点对点通信

    前言 Socket的英文原义是“孔”或“插座”,其实在网络编程中Socket就是这个意思,就像我们打电话,要首先知道对方的手机号一样,这个手机号就相当于一个Socket号.一个插座,在网络编程中就是i ...

  3. C# Winform ComBox三种赋值方式

    https://www.cnblogs.com/ingstyle/p/4815303.html 第一种方法: DataTable dt = new DataTable(); dt.Columns.Ad ...

  4. winform(三)——更换主窗体例子

    做一个登录窗口,登录成功时关闭form1,展示from2界面 1.主界面Login namespace WindowsFormsApplication1 { public partial class ...

  5. WinForm TreeView 三种状态

    private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e) { var node = e.N ...

  6. winform代码生成器(二)

    代码下载 地址 http://pan.baidu.com/s/1nuZjyat 接着说 上文继续说,这次我们要生成主从表. 此方用到了第三方的 控件 DevExpress 的Gridview .大家可 ...

  7. 小菜学习编程-Winform系列(初学者)

    前言 记得上次写<小菜的程序员道路(二)>,这篇文章的时候说过,要把工作以来整理的编程知识分享给大家,因为这半年来的工作实在是忙,现在也在忙着公司产品上线,但是答应的一定要实现,大家看我上 ...

  8. WinForm控件使用文章收藏整理完成

    对C# WinForm开发系列收集的控件使用方面进行整理, 加入了一些文章, 不断补充充实, 完善这方面. 基础 - 常用控件 C# WinForm开发系列 - CheckBox/Button/Lab ...

  9. c#winform使用WebBrowser 大全[超长文转载]

    1.主要用途:使用户可以在窗体中导航网页. 2.注意:WebBrowser 控件会占用大量资源.使用完该控件后一定要调用 Dispose 方法,以便确保及时释放所有资源.必须在附加事件的同一线程上调用 ...

随机推荐

  1. python之系统编程 --线程

    ###########使用线程完成多任务################ from threading import Thread import time #1. 如果多个线程执行的都是同一个函数的话 ...

  2. Oracle的case 用法

    1.测试表declare @stuinfo table(id int, sname nvarchar(20), ///小组名称 gender varchar(1), //小组性别 sgroup int ...

  3. XCode工程中 Project 和 Targets区别

    转自:http://blog.csdn.net/zhaozy55555/article/details/8557175 project就是一个项目,或者说工程,一个project可以对应多个targe ...

  4. Java的Socket通信(多线程)(1)

    如图: 思路: ①首先创建服务器端Socket,指定并侦听某一个端口,然后循环监听开始等待客户端的连接…. ②创建客户端socket,指定服务器地址和端口,然后获取输出流,向服务器端发送请求,并关闭s ...

  5. 【opencv学习笔记六】图像的ROI区域选择与复制

    图像的数据量还是比较大的,对整张图片进行处理会影响我们的处理效率,因此常常只对图像中我们需要的部分进行处理,也就是感兴趣区域ROI.今天我们来看一下如何设置图像的感兴趣区域ROI.以及对ROI区域图像 ...

  6. HDU 3549 Flow Problem (最大流ISAP)

    Flow Problem Time Limit: 5000/5000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Tota ...

  7. 51Nod - 1640 天气晴朗的魔法 大+小生成树(最大值最小)/二分

    天气晴朗的魔法 这样阴沉的天气持续下去,我们不免担心起他的健康.   51nod魔法学校近日开展了主题为“天气晴朗”的魔法交流活动.   N名魔法师按阵法站好,之后选取N - 1条魔法链将所有魔法师的 ...

  8. 数据库路由中间件MyCat - 源代码篇(5)

    此文已由作者张镐薪授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 3. 连接模块 如之前所述,MyCat的连接分为前端和后端,下面是连接基本相关类图: 3.1 Closabl ...

  9. 洛谷 - P2324 - 骑士精神 - A*搜索

    为什么估价是16,因为最后一步复原空格可以恢复两个位置,当然设成17.18都可以. #include<bits/stdc++.h> using namespace std; typedef ...

  10. LOL数值分析

    http://blog.sina.com.cn/s/blog_704133cb01018hud.html 为了从理论层面提高自己打<英雄联盟>的水平,再加上自己也有这方面的兴趣,所以我最近 ...