一、设置载请保留地址http://www.cnblogs.com/vincentluo
使用dev的树控件(XtaTreeList)来显示有父子关系的分类,
数据库表中只要三列:ParentID,CategoryID,CategoryName;
将控件的属性ParentFieldName设置为ParentID,属性KeyFieldName设置为CategoryID;
先上图,如下图所示:
点击Run Designer,先添加两列,设置他们的FieldName,这样用来绑定数据;分类编号的Visible=false可以进行隐藏;
如下图:
二、绑定 载请保留地址http://www.cnblogs.com/vincentluo
数据绑定很简单了
返回DataTable就可以了:
private void BindCategories()
{
DataTable dt = Info.Get_Categories();
tlCategoryList.DataSource = dt;
}
三、操作载请保留地址http://www.cnblogs.com/vincentluo
鼠标单击节点时,获取节点信息
private string CategoryID = null;
private string CategoryName = null;
private void tlCategoryList_MouseDown(object sender, MouseEventArgs e)
{
#region 获取点击节点的信息
TreeListHitInfo hi = tlCategoryList.CalcHitInfo(e.Location);
TreeListNode CurrentNode = hi.Node;
if (CurrentNode != null)
{
CategoryID = CurrentNode.GetValue("CategoryID").ToString();
CategoryName = CurrentNode.GetValue("CategoryName").ToString();
}
#endregion
if (e.Button == MouseButtons.Left)//左键
{
//Do something
lblCategoryName.Text = CategoryName;
}
else if (e.Button == MouseButtons.Right)//右键
{
//Do something
}
}
另:右键的弹出菜单使用了ContextMenuStrip,添加相关节点,绑定到XtaTreeList即可:设置XtaTreeList的ContextMenuStrip
菜单的单击事件:
private void treeShowMenu_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
{
ShowDialogForm sdf = new ShowDialogForm("提示","正在加载,请稍候......");
ToolStripItem item = e.ClickedItem;
if (item.Name == "MenuAddCategory")
{
CategoryEditFrm.GetInstance(-1,0);
}
if (item.Name == "MenuAddChildCategory")
{
CategoryEditFrm.GetInstance(int.Parse(CategoryID), 1);
}
if (item.Name == "MenuEditCategory")
{
CategoryEditFrm.GetInstance(int.Parse(CategoryID),2);
}
else if (item.Name == "MenuEditLink")
{
LinkEditFrm.GetInstance();
}
然后进入编辑页面,如下图:
保存提示:(提示效果见:Dev 等待提示 WaitDialogForm 另外版)
四、最后 转载请保留地址http://www.cnblogs.com/vincentluo
dev 的XtraTreeList很强大,可以选择节点然后直接进行拖动,本篇暂时写这么多,如果有更新的会另开随笔记录下来,更多功能待发觉;
大家有更好的建议,请多多指导
转载请保留地址http://www.cnblogs.com/vincentluo