treeview中selectedImage问题

mznxbc123456 mznxbc123456 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
如下代码,我程序跑起来的时候会默认选择我第一个node节点,不知道是怎么回事,程序一运行就响应
treeView1_AfterSelect
还弹出显示PLC的对话框了。这个问题搞不明白了。

我也不能把属性里的selectedImage去掉,我不想在选中的时候有图片的改变,这也去不了

这是我的代码
private void Form1_Load(object sender, EventArgs e)
{
GetMenu(plcView, menuStrip1);
}

public void GetMenu(TreeView treeV, MenuStrip MenuS)
{
bool Var_Bool = true;
//遍历MenuStrip组件中的一级菜单项
for (int i = 0; i < MenuS.Items.Count; i++)
{
//将一级菜单项的名称添加到TreeView组件的根节点中,并设置当前节点的子节点newNode1
TreeNode newNode1 = treeV.Nodes.Add(MenuS.Items[i].Text);
treeV.ImageIndex = 1;
//判断当前项是否为可用
if (MenuS.Items[i].Enabled == false)
{
//改变树节点的字体颜色为不可用色
newNode1.ForeColor = Color.Silver;
Var_Bool = false;
}
else
{
//改变树节点的字体颜色为可用色
newNode1.ForeColor = Color.Black;
Var_Bool = true;
}
//标识,有子项的命令项
newNode1.Tag = 0;
//将当前菜单项的所有相关信息存入到ToolStripDropDownItem对象中
ToolStripDropDownItem newmenu = (ToolStripDropDownItem)MenuS.Items[i];
//添加多层命令项
//GetCavernMenu(newNode1, newmenu, Var_Bool);
}
}

public void GetCavernMenu(TreeNode newNodeA, ToolStripDropDownItem newmenuA, bool BL)
{
bool Var_Bool = true;
if (newmenuA.HasDropDownItems && newmenuA.DropDownItems.Count > 0)
{
//遍历二级菜单项
for (int j = 0; j < newmenuA.DropDownItems.Count; j++)
{
//将二级菜单名称添加到TreeView组件的子节点newNode1中,并设置当前节点的子节点newNode2
TreeNode newNodeB = newNodeA.Nodes.Add(newmenuA.DropDownItems[j].Text);
newNodeB.ImageIndex = 3;
Var_Bool = true;
//判断当前命令项的上一级命令是否可用
if (BL == false)
{
//设置当前命令项的字体颜色为不可用色
newNodeB.ForeColor = Color.Silver;
//标识,不显示相应的窗体
newNodeB.Tag = 0;
Var_Bool = false;
}
else
{
//判断当前命令项是否为可用
if (newmenuA.DropDownItems[j].Enabled == false)
{
//设置当前命令项的字体颜色为不可用色
newNodeB.ForeColor = Color.Silver;
//标识,不显示相应的窗体
newNodeB.Tag = 0;
Var_Bool = false;
}
else
{
//设置当前命令项的字体颜色为可用色
newNodeA.ForeColor = Color.Black;
//标识,显示相应的窗体
newNodeB.Tag = int.Parse(newmenuA.DropDownItems[j].Tag.ToString());
}
}
//将当前菜单项的所有相关信息存入到ToolStripDropDownItem对象中
//继续遍历
ToolStripDropDownItem newmenuB = (ToolStripDropDownItem)newmenuA.DropDownItems[j];
//如果当前命令项有子项
if (newmenuB.HasDropDownItems && newmenuA.DropDownItems.Count > 0)
{
//标识,有子项的命令项
newNodeB.Tag = 0;
//调用递归方法
GetCavernMenu(newNodeB, newmenuB, Var_Bool);
}
}
}
}

protected void treeView1_AfterSelect(object sender, System.Windows.Forms.TreeViewEventArgs e)
{
// Determine by checking the Text property.
//MessageBox.Show(e.Node.Text);
}
}
...全文
评论 7
收藏 已收藏
分享
返回顶部
mznxbc123456
C# 111,128 成员 642,537 内容