最近把我们的b/s系统,增加智能客户端的功能。确实智能客户端是非常好用的东西。可惜winform的控件功能不怎么强大,相比vb差很多啊。比如DataGridView不支持二维表头,不支持表尾合计,相比之下 web的好办多了(还是喜欢Web的排版、导航,但喜欢Win的操作性,希望WPF早日流行)。

       但是 MIS系统没有二维表头确实是客户不能接受的,尝试了com控件flexgrid或者开源的SourceGrid3,但都不怎么好用,于是想改造一下DataGridView。我的做法是在CellPainting做手脚。花了一天时间尝试,只是做出原型,还没有完善,希望有需要的朋友少走弯路。

  1,继承DataGridView,添加表头信息类。
  2,添加CellPainting,代码如下:
Datagridview 实现二维表头  private void DataGridViewEx_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
        }

3,调用方法
Datagridview 实现二维表头  dataGridViewEx1.TopRow.Cells[2].Text = "入库";
Datagridview 实现二维表头            dataGridViewEx1.TopRow.Cells[
2].ColSpan = 2;
Datagridview 实现二维表头
Datagridview 实现二维表头
Datagridview 实现二维表头            dataGridViewEx1.TopRow.Cells[
4].Text = "出库";
Datagridview 实现二维表头            dataGridViewEx1.TopRow.Cells[
4].ColSpan = 2;
4,效果图
Datagridview 实现二维表头

至于表尾合计,也做出了原型。二维表头+表尾合计,基本上满足需求了。

相关文章: