c# winform项目开发中常用到得一些小技巧
(1)DataGridView绘制行头序号
有时DataGridView加载的数量行比较多,而用户需要根据行号来判读数据,此时在DataGridView控件的行头加上序号是十分必要的。
在dgv的RowPostPaint事件里处理,完整代码如下:
(2)在ToolStript里插入DatePicker等控件
在ToolStript控件里,默认为只行Lable,Button,ComBoBox,TextBox等控件,若需加入DatePicker等控件,在窗体的Load事件里用代码给ToolStript添加控件。
(3)委托在观察者模式里的应用(容器窗体观察用户控件的事件)
步骤1、在用户控件(或子窗体)类的外面定义委托类public delegate void updateValueTreeHandler(string arg1,string arg2);//定义委托。
步骤2、在用户控件(或子窗体)类里用上述委托定义事件 public event updateValueTreeHandler UpdateValueTreeEvent;//定义事件
步骤3、在用户控件(或子窗体)类的某个动作中触发事件UpdateValueTreeEvent(instanceArg1,instanceArg2);//触发事件
以上的用户控件或子窗体时“消息发出者”,或称为“被监听者”。
下述的容器(或父窗体)称为“消息观察着”,或称为“监听者”,自动观察和接收用户控件(或子窗体)的变动消息事件,做出相应反应(比如更新数据和界面)
步骤4、在容器(或父窗体)里定义接收到消息后的反应方法
private void UpdateValueTree(string arg1,string arg2)
{
//do something
}
步骤5、在容器(或父窗体)里用,实例化用户控件(或子窗体)后,注册子窗体的事件
UserControl1.UpdateValueTreeEvent += new updateValueTreeHandler(UpdateValueTree);//
(4)DataGridView的combobox列允许用户写入数据,并自动匹配
在dgv的EditingControlShowing事件里修改combobxo列的熟悉,完整代码如下:
(5)TreeView的节点拖动