我想從另一個對象上的MouseHover事件調用按鈕的可見性。 我想要做的是當我把鼠標放在一個圖片框上,將附加到該圖片框的按鈕設置爲可見時,默認情況下該按鈕被創建時是不可見的。 當我嘗試從MouseHover事件調用它時,它說該按鈕爲空。我不擅長繼承,所以我有點卡在這裏,任何幫助,將不勝感激。 下面是代碼(我想要做的是隻在MouseHover事件):如何使用C#中的另一個類的調用和對象的繼承
private void Button1_Click(object sender, EventArgs e)
{
FlowLayoutPanel flP = new FlowLayoutPanel();
PictureBox picB = new PictureBox();
Label laB = new Label();
Button btn = new Button();
picB.Size = new Size(130, 70);
laB.Size = new Size(130, 20);
flP.Size = new Size(130, 90);
btn.Size = new Size(20, 20);
laB.Text = "Text";
laB.Name = "Name";
flP.Name = "Name";
btn.Text = "X";
btn.Name = "Name";
btn.Visible = false;
flP.Controls.Add(picB);
flP.Controls.Add(laB);
picB.Controls.Add(btn);
flP.Location = new System.Drawing.Point(3, 3);
laB.Location = new System.Drawing.Point(3, 70);
btn.Location = new System.Drawing.Point(100, 5);
mainFLP.Controls.Add(flP);
picB.MouseHover += picB_MouseHover;
picB.DoubleClick += picB_DoubleClick;
}
private void picB_MouseHover(object sender, EventArgs e)
{
PictureBox pb = (PictureBox)sender;
Button bt = pb.Parent as Button;
//bt.Visible = true;
}
private void Form1_Load(object sender, EventArgs e)
{
for (int i = 1; i <= 10; i++)
{
FlowLayoutPanel flP = new FlowLayoutPanel();
PictureBox picB = new PictureBox();
Label laB = new Label();
Button btn = new Button();
picB.Size = new Size(130, 70);
laB.Size = new Size(130, 20);
flP.Size = new Size(130, 90);
btn.Size = new Size(20, 20);
flP.Name = i.ToString();
laB.Name = "Link";
laB.Text = "Name";
btn.Text = "X";
btn.Name = "b" + i.ToString();
btn.Visible = false;
flP.Controls.Add(picB);
flP.Controls.Add(laB);
picB.Controls.Add(btn);
flP.Location = new System.Drawing.Point(3, 3);
laB.Location = new System.Drawing.Point(3, 70);
btn.Location = new System.Drawing.Point(100, 5);
mainFLP.Controls.Add(flP);
picB.MouseHover += picB_MouseHover;
picB.DoubleClick += picB_DoubleClick;
}
}
private void picB_DoubleClick(object sender, EventArgs e)
{
PictureBox pb = (PictureBox)sender;
FlowLayoutPanel flp = pb.Parent as FlowLayoutPanel;
flp.Dispose();
}
請注意,在這種情況下,繼承不起任何作用 –
好吧,但必須有一種方法可以在不使按鈕成爲全局的情況下使其可見。 – Toody
Button bt =(Button)pb.Controls [0]; –