2011-07-09 21 views
0

我曾嘗試使用下面的代碼創建的標籤形式:創建和動態添加一個新的控制

public static System.Windows.Forms.PictureBox pc = new PictureBox(); 

public static System.Windows.Forms.Label la = new Label(); 

private void label2_Click(object sender, EventArgs e) 
{ 
    label2.Visible = false; 
    pictureBox2.Hide(); 
    Controls.Add(la); 
    la.Location = new Point(78, 191); 
    la.Size = new Size(72, 77); 
    la.Image = _2WaySMSGatewayApp.Properties.Resources.message; 
} 

我希望能夠創建一個新的標籤,並把它添加到我的形式當我點擊這個標籤。我怎樣才能做到這一點?從註釋說明 -

void la_Click(object sender, EventArgs e) 
{ 
    //add new label 
} 

編輯:那麼在處理

la.Click += new EventHandler(la_Click); 

回答

1

您可以添加一個單擊處理。您的代碼應該是這樣的:

public static System.Windows.Forms.PictureBox pc = new PictureBox(); 

public static System.Windows.Forms.Label la = new Label(); 

private void label2_Click(object sender, EventArgs e) 
{ 
    label2.Visible = false; 
    pictureBox2.Hide(); 
    Controls.Add(la); 
    la.Location = new Point(78, 191); 
    la.Size = new Size(72, 77); 
    la.Image = _2WaySMSGatewayApp.Properties.Resources.message; 
    la.Click += new EventHandler(la_Click); 
} 

void la_Click(object sender, EventArgs e) 
{ 
    //the new label has been clicked 
} 
+0

對不起@keyboardP ..我不明白你的代碼! :(你會詳細說明一下嗎?請 –

+1

你是否試圖讓新標籤('la')可點擊?如果是這樣,就像你添加'Location,Size和Image'屬性的方式一樣,你可以添加' events'。我爲標籤添加了'Click'事件並將其鏈接到處理程序。 – keyboardP

1
public static System.Windows.Forms.Label la = new Label(); 

你所做的標籤靜態的,只有其中之一。向Controls集合添加相同的標籤不起作用。您需要創建一個新的Label控件:

private int labelCount; 

private void label2_Click(object sender, EventArgs e) 
{ 
    var la = new Label(); 
    la.Size = new Size(72, 77); 
    la.Location = new Point(78, 191 + labelCount * (la.Height + 10)); 
    la.Image = _2WaySMSGatewayApp.Properties.Resources.message; 
    la.Text = "Make it visible"; 
    labelCount++; 
    la.Name = "label" + labelCount.ToString(); 
    la.Click += new EventHandler(la_Click); 
    Controls.Add(la); 
} 

void la_Click(object sender, EventArgs e) 
{ 
    var la = (Label)sender; 
    // You could use the Name property 
    //... 
} 

這段代碼的意圖是很難猜測,我只是寫東西,有明顯的副作用。

+0

我是個初學者..你的代碼可能非常好..但是我很難理解你!thankyou無論如何。!:) –

+0

我花了我的時間理解這段代碼,但很棒!..這段代碼寫得很好.. :)謝謝.. –

相關問題