1.新建表
2.新建Map表
3.新建SQL中的表
选择右键菜单控件
1.添加项
2.在DroDownItem(集合)中添加项
3.Classify.DropDown.Items.Add();
添加显示文本
Classify.DropDown.ItemClick += DropDown+ItemClick;
4.添加显示文本的集合
Classify.DropDownItem.AddRange();
将ToolStripItem控件的数组添加到集合中
(控件中有属性可以添加下拉菜单中的数据,也可通过代码添加)
//加载时从服务器中获取右键菜单DropDown中的数据
//从服务器获取分类列表
var lstclassify = JsonData<List<MaterialClassify>>(AppSession.WindowsDataService.GetMaterialClassify(JsonData(null)));
foreach (var item in lstclassify)
{
Classify.DropDown.Items.Add(item.Classify);
}
Classify.DropDown.ItemClicked += DropDown_ItemClicked;
//右键菜单contextMenuStrip
//treelist中的Click事件
private void treeList1_MouseClick(object sender, MouseEventArgs e)
{
//this.contextMenuStrip1.Show();
treeList1.SetFocusedNode(null);
//如果是鼠标右键点击
if (e.Button == MouseButtons.Right)
{
this.treeList1.ContextMenuStrip = null;
var hitInfo = this.treeList1.CalcHitInfo(e.Location);
mSelectedNode = hitInfo.Node;
treeList1.SetFocusedNode(mSelectedNode);
treeList1.ContextMenuStrip = this.contextMenuStrip1;
}
}
private void contextMenuStrip1_MouseClick(object sender, MouseEventArgs e)
{
var clickedItem = this.contextMenuStrip1.GetItemAt(e.X, e.Y);
if (clickedItem!=null)
{
Console.WriteLine(clickedItem.Name);
}
}
//右键菜单中的点击功能,如点击右键,新建文件夹。右键菜单有个DropDownItem事件
private void DropDown_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
{
if (e.ClickedItem != null)
{
string result = string.Empty;
lstCheckedNodes.Clear();
lstCheckedMaterial.Clear();
GetCheckedNodes(this.treeList1.Nodes);
if (lstCheckedMaterial != null && lstCheckedMaterial.Count != 0)
{
foreach (var marItem in lstCheckedMaterial)
{
var classify = new MaterialClassify();
classify.Classify = e.ClickedItem.Text;
marItem.Classify = classify;
//marItem.Classify = new MaterialClassify() { Classify = e.ClickedItem.Text };
}
result = AppSession.WindowsDataService.SaveBomClassify(JsonData(lstCheckedMaterial));
foreach (TreeListNode nodeItem in lstCheckedNodes)
{
var checkedMat = (Objects.Domain.Material)nodeItem.GetValue("Material");
nodeItem.SetValue("Classify", checkedMat?.Classify.Classify);
nodeItem.CheckState = CheckState.Unchecked;
}
}
}
}
List<TreeListNode> lstCheckedNodes = new List<TreeListNode>();
List<Objects.Domain.Material> lstCheckedMaterial = new List<Objects.Domain.Material>();
private void GetCheckedNodes(TreeListNodes nodes)
{
foreach (TreeListNode item in nodes)
{
if (item.Checked)
{
var checkedMat = (Objects.Domain.Material)item.GetValue("Material");
lstCheckedMaterial.Add(checkedMat);
lstCheckedNodes.Add(item);
}
if (item.Nodes != null && item.Nodes.Count != 0)
{
GetCheckedNodes(item.Nodes);
}
}
}