Treelist使用实例(添加右击菜单)
Dev控件中Treelist的使用
最近在做一个用到Dev控件的项目,需要用到Treelist这
个控件,写个文档留着自用同时也分享给大家。 我的开发环境是VS2008,语言C#。数据源用的是
Datatable,最根本的字段有 ID,PARENTID,NAME。 Treelist的名称为Treelist1.
绑定数据的代码如下:
this.treeList1.DataSource = dt; this.treeList1.KeyFieldName = "ID"; this.treeList1.ParentFieldName = "PARENTID"; this.treeList1.Columns[0].Caption = "测试";//树的名称 为了更方便理解,手动创建一个Datatable,
DataTable dt = new DataTable();
dt.Columns.Add("ID");
dt.Columns.Add("PARENTID");
dt.Columns.Add("NAME");
并为其添加几行数据:
DataRow dr1 = dt.NewRow();
dr1["ID"] = 1;
dr1["PARENTID"] = 1;
dr1["NAME"] = "类目1";
dt.Rows.Add(dr1);
DataRow dr2 = dt.NewRow();
dr2["ID"] = 2;
dr2["PARENTID"] = 1;
dr2["NAME"] = "商品1";
dt.Rows.Add(dr2);
DataRow dr3 = dt.NewRow();
dr3["ID"] = 3;
dr3["PARENTID"] = 1;
dr3["NAME"] = "商品2";
dt.Rows.Add(dr3);
DataRow dr4 = dt.NewRow();
dr4["ID"] = 4;
dr4["PARENTID"] = 4;
dr4["NAME"] = "类目2";
dt.Rows.Add(dr4);
DataRow dr5 = dt.NewRow();
dr5["ID"] = 5;
dr5["PARENTID"] = 4;
dr5["NAME"] = "商品1";
dt.Rows.Add(dr5);
DataRow dr6 = dt.NewRow();
dr6["ID"] = 6;
dr6["PARENTID"] = 4;
dr6["name"] = "商品2";
添加后的
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
的数据如下:
运行的结果如下图:
想要对节点添加点击事件,可以通过Treelist的treeList1_MouseDown 事件来实现。既 鼠标落下事件。和点击时间差不多。
下面通过一个给节点添加右击菜单的实例来说明几个功能的实现。
private void treeList1_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)//判断鼠标是右击
{
DevExpress.XtraTreeList.TreeListHitInfo hInfo = this.treeList1.CalcHitInfo(new Point(e.X, e.Y));
TreeListHitInfo hitInfo = (sender as TreeList).CalcHitInfo(new Point(e.X, e.Y));
TreeListNode node = hitInfo.Node;
if (hInfo.HitInfoType == DevExpress.XtraTreeList.HitInfoType.Cell) //
在单元格上右击了
{
string aaa = node.Expanded.GetHashCode().ToString();
string ab = node.GetValue("name").ToString();//获取当前节点的值
if (hInfo.Node.RootNode.Id == hInfo.Node.Id) //说明是根节点 站
点
{
popupMenu1.ShowPopup(Control.MousePosition);
string ncount = node.Nodes.Count.ToString();
string names = node.Nodes[1].GetValue("name").ToString();
richTextBox1.Text = "子节点的总数是\"" + ncount + "\"" + "
第二个字节点名称是\"" + names+"\"";
}
else
{
popupMenu2.ShowPopup(Control.MousePosition);
string sname = node.ParentNode.GetValue("name").ToString();
richTextBox1.Text = "根节点的名称是\"" + sname + "\"";
}
}
treeList1.FocusedNode = node;
}
}
希望能够帮到你们~~~ 本人新手有意见或者建议的
请提出~~~