我想創建很多面板,然后只顯示一個與所選樹節點對應的面板。
我使用以下代碼使用另一種形式創建面板:
private void btn_addpart_Click(object sender, EventArgs e)
{
Form1.instance.tree.SelectedNode.Nodes.Add(textBox1.Text);
Form1.instance.tree.SelectedNode.Expand();
Panel panel = new Panel();
panel.Size = new Size(50, 50);
panel.Location = new Point(rnd.Next(600),rnd.Next(200));
panel.Name = textBox1.Text;
panel.BackColor = Color.Red;
Label label = new Label();
label.Text = textBox1.Text;
panel.Controls.Add(label);
Form1.instance.Controls.Add(panel);
this.Close();
}
然后我只想顯示一個與所選樹節點對應的核心。為此,每當我單擊樹節點時,我想將所有面板的“可見”屬性設定為 false,然后只將我想要的那個設定為 true。為此,我使用此代碼。
private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
foreach (Panel panel in this.Controls.OfType<Panel>())
{
panel.Visible = false;
}
Control control = Controls[treeView1.SelectedNode.Text];
control.Visible = true; // here is says that control is null
}
但我得到一個錯誤。我做錯了什么,如果我不能這樣做,還有其他方法嗎?
uj5u.com熱心網友回復:
我想到了。問題是面板沒有發送到 Form1,但我沒有修復它,而是找到了一種不同的方法。這是哪個。每次單擊樹節點時都會播放此訊息。
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
foreach (Panel panel in this.Controls.OfType<Panel>())
{
panel.Visible = false;
}
foreach (Panel panel in this.Controls.OfType<Panel>())
{
if (panel.Name == treeView1.SelectedNode.Text)
{
panel.Visible = true;
}
}
}
這正在創建我 Form2 的面板
private void button1_Click(object sender, EventArgs e)
{
Form1.instance.tree.SelectedNode.Nodes.Add(textBox1.Text);
Form1.instance.tree.SelectedNode.Expand();
Panel panel = new Panel();
panel.BorderStyle = BorderStyle.FixedSingle;
panel.Location = new Point(random.Next(200), random.Next(200));
panel.Size = new Size(50,50);
panel.Name = textBox1.Text;
Label label = new Label();
label.Text = textBox1.Text;
panel.Controls.Add(label);
Form1.instance.Controls.Add(panel);
foreach (Panel pln in Form1.instance.Controls.OfType<Panel>())
{
pln.Visible = false;
}
foreach (Panel pln in Form1.instance.Controls.OfType<Panel>())
{
if(pln.Name == Form1.instance.tree.SelectedNode.Text)
{
pln.Visible = true;
}
}
this.Close();
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/456220.html
