关于DataGrid的一点基础东西

原创 2006年02月10日 01:43:00
1、列名显示
MS让DataGrid的外观配置,包括列名的显示,全部交给了GridTableStylesCollection。
DataGridTableStyle是一个DataGridTableStyle集合,由MappingName确定唯一性。
而GridColumnStyles 属性确定其中列的具体情况,也是一个集合。
列的属性可以为DataGridBoolColumn或者DataGridTextBoxColumn,常用后者。
列同样有由MappingName确定其唯一性,在DataSet/DataTable中,与其中的ColumnName对应。
DataGridTextBoxColumn.HeaderText就是列名的显示值。
还有其他许多很有用的属性。
但是:我用Delphi的时候,从来没碰到要设置一下列名这么简单的事情竟然需要这么复杂的过程,我根本没想到去用其他的属性……
另外,不是有DataTable.Columns.Caption么?为何DataGrid死抓住ColumnName不放而不去看看Caption?
代码:
command = conn.CreateCommand();
command.CommandText = "Select ID, NAME,REMARK From TBL;";
command.CommandType = CommandType.Text;
DataTable table = new DataTable();
adapter = new FbDataAdapter(command);
adapter.Fill(table);

table.TableName = "TBL";        //其实table原来的TableName为空
grid.DataSource = table;
DataGridTableStyle ts = new DataGridTableStyle();
DataGridTextBoxColumn t1 = new DataGridTextBoxColumn() ,
        t2 = new DataGridTextBoxColumn() ,
        t3 = new DataGridTextBoxColumn();
ts.MappingName = table.TableName;
t1.MappingName = "ID"; t1.HeaderText = "编号";
t1.NullText = "自动编号";
t2.MappingName = "NAME"; t2.HeaderText = "名称";
t2.NullText     = "";
t3.MappingName = "REMARK"; t3.HeaderText = "备注";
t3.NullText = "";
ts.GridColumnStyles.Add(t1);
ts.GridColumnStyles.Add(t2);
ts.GridColumnStyles.Add(t3);
grid.TableStyles.Add(ts);

2、选择行
找到了选择行的一个好代码,利用了DataGridTextBoxColumn.TextBox.Enter属性。
主要是把选择做成了一个事件,极为方便调用,我稍微改了一下,放到了我的公用类里了(所以需要static)。
使用时直接把selectLineInit放到Form的OnLoad里面就行了:
public static void selectLineInit(DataGridTableStyle ts)
{
        foreach (DataGridColumnStyle dgCol in ts.GridColumnStyles)
        {
                DataGridTextBoxColumn dgtCol = dgCol as DataGridTextBoxColumn;
                dgtCol.TextBox.Enter += new EventHandler( onSelectLine);
        }
}

public static void onSelectLine( object sender, EventArgs e)
{
        Control txtContentBox = sender as Control;
        txtContentBox.Visible = false;
        DataGrid dgParent = txtContentBox.Parent as DataGrid;
        dgParent.Select(dgParent.CurrentCell.RowNumber);
}


关于streambuf一点东西

使用插入符和提取符时,一般程序员不知道或不必关心数据在哪里产生和消亡,不管处理的对象是标准I/O、文件、内存还是新创建的类或设备。然而,重要的是与产生和消耗数据的输入输出流部分进行通信为这部分提供统一...
  • Kay_Sprint
  • Kay_Sprint
  • 2011年07月09日 13:05
  • 3790

运营一点思考

今天阅读互联网运营书籍的时候,忽然看到作者分享了一个案例,主要讲用户群的消息推送问题。作者是做课程培训的,有学员群,作者的同事在群中推送了一条消息,主要是介绍课程的信息,内容大致主要是有哪些领域中的大...
  • leanln
  • leanln
  • 2018年01月08日 23:41
  • 26

Redis一点基础的东西

目录 1.基础底层数据结构 2.windows下环境搭建 3.java里连接redis数据库 4.关于认证 5.redis高级功能总结1.基础底层数据结构1.1.简单动态字符串SDS定义: ...
  • youyou1543724847
  • youyou1543724847
  • 2016年10月14日 19:13
  • 2705

关于BIOS的一点东西

关于BIOS的一点东西 编辑删除转载2016-05-20 00:36:36 去把BIOS的每个单词意思都有道一遍就都明白了,BOOT是更改 启动顺序的(台式机一直按del键就会进入B...
  • huxiaokang1234
  • huxiaokang1234
  • 2016年05月30日 13:59
  • 159

关于strace的一点东西

好久没写博客了,感觉有点惭愧,觉得自己也应该静下心来利用自己可分配的时间去提升自己.        虽然最近在看一些Python的东西,可是觉得自己还是不能忘记本行啊,Linux C的一些东西必须一直...
  • xianszm007
  • xianszm007
  • 2014年07月19日 11:40
  • 1387

关于指针的一点东西

函数形参最好用引用  知识点积累: 1)指针就是地址,地址就是指针。 2)访问方式: 1、通过变量名访问 2、通过地址访问,即指针访问 3)&取变量地址,*取地...
  • u010086581
  • u010086581
  • 2014年08月23日 21:16
  • 102

一点关于ant的东西

ant用于自动调用程序完成项目的编译、打包、测试和部署等操作。ant脚本的格式是基于XML的,通常构建文件默认的文件名为build.xml。build.xml将一组需要执行的目标组织在一起,每个目标都...
  • wangjun_pfc
  • wangjun_pfc
  • 2008年05月10日 16:01
  • 786

关于File的一点东西

今天学了关于file的一点东西。搞得不是很懂。 没有逻辑的写了点代码。 把多一些相关的知识点都写进去了 还要在多搞搞 --------------------------------------...
  • srd1900
  • srd1900
  • 2015年06月30日 00:27
  • 287

关于操作系统的一点东西

操作系统的组成     系统资源包括CPU、内存、输入输出设备以及存储在外存中的信息. 因此操作系统由 (1)对CPU的使用进行管理的进程调度程序  (2)对内存分配进行管理的内存管理程序  ...
  • huxiaokang1234
  • huxiaokang1234
  • 2016年05月30日 21:33
  • 144

关于dialog的一点东西

今天开发一个上传照片的小功能,
  • caihuajian235
  • caihuajian235
  • 2014年09月05日 20:32
  • 415
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于DataGrid的一点基础东西
举报原因:
原因补充:

(最多只允许输入30个字)