我正在嘗試動態創建一些標簽和按鈕。我想在動態創建按鈕單擊時更改標簽的名稱。當我在撰寫button_click 方法時,我無法直接訪問標簽物件。我怎樣才能做到這一點?
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace DemoPanel
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
int lblYVal = 10;
int btnYVal = 50;
for(int i = 1; i< 5; i )
{
Label lbl = new Label();
lbl.Text = "test";
lbl.Name = "test" i.ToString();
lbl.Location = new System.Drawing.Point(10, lblYVal);
lbl.Visible = true;
Button btn = new Button();
btn.Text = "Click";
btn.Name = "textBtn" i.ToString();
btn.Location = new System.Drawing.Point(10,btnYVal);
btn.Visible = true;
btn.Click = new EventHandler(this.btn_click);
this.Controls.Add(lbl);
this.Controls.Add(btn);
lblYVal = 70;
btnYVal = 70;
}
}
void btn_click(object sender, EventArgs e)
{
//How can i change label text from here.
//lbl.text //Does Not exist Error.
Label lbl = new Label();
lbl.Text = "New text"; //Not changing Label text
}
}
}
uj5u.com熱心網友回復:
for您撰寫的回圈知道按鈕和標簽。您可以利用它來撰寫一個捕獲標簽的點擊處理程式。就像改變一樣簡單:
btn.Click = new EventHandler(this.btn_click);
到
btn.Click = (sender, args) => lbl.Text = "Clicked";
uj5u.com熱心網友回復:
您可以維護一個按鈕字典到標簽,并使用它來查找匹配的標簽。另一種選擇是將索引與按鈕和標簽相關聯,然后找到帶有標簽的標簽。
我將向您說明字典選項。
Dictionary<Button, Label> mapping = new Dictionary<Button, Label>();
...
在你的回圈中,
mapping[btn] = lbl;
在您的處理程式中,
((Label)mapping[(Button)sender)]).Text = "some text";
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/362765.html
