老忘,每次写都要想一下。郁闷,写下来。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraEditors;
namespace XSHTManagement
{
public partial class frmActicleTypeManagement : ClientCommonCore.SUNCOERPBASEFORM
{
public frmActicleTypeManagement()
{
InitializeComponent();
InitiaTree(treeArticleManagement);
}
#region 属性
#endregion
#region 操作函数Kit
/// <summary>
/// 初始化树
/// </summary>
/// <param name="tree"></param>
public void InitiaTree(TreeView tree)
{
tree.Nodes.Clear();
CreateTree(0, tree.Nodes);
tree.ExpandAll();
}
/// <summary>
/// 创建树
/// </summary>
public void CreateTree(int parentid,TreeNodeCollection nodes)
{
WebServiceXSHTManagement.WebServiceXSHTManagement ArticleType = new XSHTManagement.WebServiceXSHTManagement.WebServiceXSHTManagement();
WebServiceXSHTManagement.XSHTArticleTypeInfoModel[] ArticleTypeModelList = new XSHTManagement.WebServiceXSHTManagement.XSHTArticleTypeInfoModel[] { };
ArticleTypeModelList = ArticleType.ArticleTypeGetList(parentid);
foreach (WebServiceXSHTManagement.XSHTArticleTypeInfoModel article in ArticleTypeModelList)
{
TreeNode GetNode=new TreeNode();
GetNode.Text = article.ArticleType.ToString();
GetNode.Tag = article.id.ToString();
nodes.Add(GetNode);
CreateTree(Convert.ToInt32(GetNode.Tag.ToString()), GetNode.Nodes);
}
ArticleType.Dispose();
}
#endregion
private void treeArticleManagement_AfterSelect(object sender, TreeViewEventArgs e)
{
}
private void frmActicleTypeManagement_Load(object sender, EventArgs e)
{
}
#region 系统事件
#region 鼠标右击事件
private void treeArticleManagement_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
//获取制定位置的节点
TreeNode RightClickNode = treeArticleManagement.GetNodeAt(e.X, e.Y);
//设置获取焦点的节点为刚点击的节点
treeArticleManagement.SelectedNode = RightClickNode;
//Show PopMenu
popupControl.ShowPopup(Cursor.Position);
}
}
#endregion
#region 添加节点事件
private void btnAddArticle_Click(object sender, EventArgs e)
{
int ParentID = -1;
if (txtArticleDis.Text.Trim() == "") { MessageBox.Show("请填写分类名称!",SystemTitle+"-友情提示",MessageBoxButtons.OK,MessageBoxIcon.Error); return;}
if (treeArticleManagement.SelectedNode == null) { return; }
WebServiceXSHTManagement.WebServiceXSHTManagement ArticleType = new XSHTManagement.WebServiceXSHTManagement.WebServiceXSHTManagement();
WebServiceXSHTManagement.XSHTArticleTypeInfoModel ArticleTypeModel = new XSHTManagement.WebServiceXSHTManagement.XSHTArticleTypeInfoModel();
ParentID = Convert.ToInt32(treeArticleManagement.SelectedNode.Tag.ToString());
ArticleTypeModel.ArticleType = txtArticleDis.Text.Trim();
ArticleTypeModel.ParentID = ParentID;
ArticleType.InsertArticleType(ArticleTypeModel);
popupControl.Hide();
InitiaTree(treeArticleManagement);
}
#endregion
#region 删除节点事件
private void btnDelArticle_Click(object sender, EventArgs e)
{
if (treeArticleManagement.SelectedNode == null) { return; }
TreeNode node = new TreeNode();
node = treeArticleManagement.SelectedNode;
if (node.Nodes.Count > 0) { MessageBox.Show("包含下级数据无法删除,请先删除下级数据!",SystemTitle+"-友情提示",MessageBoxButtons.OK,MessageBoxIcon.Warning); return;}
WebServiceXSHTManagement.WebServiceXSHTManagement ArticleType = new XSHTManagement.WebServiceXSHTManagement.WebServiceXSHTManagement();
if (MessageBox.Show("你确定要删除【" + node.Text + "】吗?", SystemTitle + "-友情提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.Cancel) { return; }
ArticleType.DeleteArticle(Convert.ToInt32(node.Tag.ToString()));
InitiaTree(treeArticleManagement);
}
#endregion
#region 回车键
private void btnAddArticle_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode != Keys.Enter) return;
btnAddArticle_Click(sender, (EventArgs)(e));
}
#endregion
#endregion
}
}