TreeGridView的使用
相关dll引用
初始是要修改界面上的显示问题。由于接手别人的代码,不知道这个控件是什么以及用法什么,我先在toolbox里找没找到。后面通过设计界面找到类型( AdvancedDataGridView),然后就找不到上一级了,只能通过引用dll,找类似的看内部函数。
- 具体dll,右键——view in object browser,单机每个dll都能看到里面具体函数,我把所有datagridview和treelist相关的dll都查了,最终找到了引用的dll(ExpandableGridView.dll)。
控件添加
- 我以为添加了dll总能直接从toolbox里拖出个控件了呢,太天真。。。里面还是没有。实际上还是Datagridview 控件放到窗体中,然后修改设计器里(designer.cs)的代码 this.dataGridView1 = new AdvancedDataGridView.TreeGridView();将原本的Datagridview类型修改成我们要的TreeGridView类型。
- 根据业务内容,添加4列,如图:第一列是图片列,可以添加imagelist;第二列(实际上应该叫第一列),必须选择类型为TreeGridColumn,否则没有办法添加节点(比如说这列类型textbox,下列选TreeGrid就不行)
节点添加
这个控件的列是分离的,第一列设定了是节点列,所以父子关系会在这列显示,其他的列数据可以看情况添加。
TreeGridNode node = dataGridView1.Nodes.Add(null,"1","父节点","第一行","第五列");
TreeGridNode node1 =node.Nodes.Add (null,"2","子节点");
添加模式就是从第一列往后放,没有就不填,超出列的话就添加不上了(也不会报错,直接就是空的)。
行号添加
由于第一列不能放textbox列,所以只能用headercell。需要设置ColumnHeaderVisible属性,然后调用RowStateChanged事件