我正在以编程方式创建包含其中的删除按钮的GroupBox。我想通过btnSil_Click
事件单击这些按钮时删除GroupBoxes。
以下是我目前在form_load
中的代码:
for (i=0;i<AnaEkranForm.n1;i++)
{
GroupBox gBKisaMetin = new GroupBox();
this.Controls.Add(gBKisaMetin);
gBKisaMetin.Location = new Point(80, gYuksek);
gYuksek += 200;
gBKisaMetin.Text = "Soru " + (soruSayac++);
gBKisaMetin.Width=500;
gBKisaMetin.Height = 150;
TextBox tBSoru = new TextBox();
tBSoru.Location = new Point(30, 30);
tBSoru.Width = 400;
gBKisaMetin.Controls.Add(tBSoru);
Label labelCevap = new Label();
labelCevap.Location = new Point(30, 70);
labelCevap.Text = "Cevap";
gBKisaMetin.Controls.Add(labelCevap);
TextBox tBKisaMetinCevap = new TextBox();
tBKisaMetinCevap.Location = new Point(30, 95);
tBKisaMetinCevap.Width = 400;
gBKisaMetin.Controls.Add(tBKisaMetinCevap);
tBKisaMetinCevap.ReadOnly = true;
Button btnSil = new Button();
btnSil.Location = new Point(460, 10);
btnSil.Width = 30;
btnSil.Text = "Sil";
btnSil.Name = "btnSil_" + i.ToString();
btnSil.Click += new EventHandler(btnSil_Click);
gBKisaMetin.Controls.Add(btnSil);
}
AnaEkranForm.n1
是将要创建的GroupBox的数量。
这是我的按钮点击处理程序,用于删除:
private void btnSil_Click(object sender, EventArgs e)
{
this.Controls.Remove(gBKisaMetin);
gBKisaMetin.Dispose();
}
但这不起作用,因为我无法访问gBkisaMetin
。我怎样才能让它发挥作用?
答案 0 :(得分:0)
因为GroupBox是删除Button的父级,所以你应该能够非常简单地访问它:
private void btnSil_Click(object sender, EventArgs e)
{
Control groupBox = ((Button)sender).Parent;
this.Controls.Remove(groupBox);
groupBox.Dispose();
}
这会将发送者强制转换为Button,然后通过Parent
属性访问父控件(GroupBox)。然后可以操纵GroupBox。
答案 1 :(得分:0)
您还可以在创建Button时在Button的com.facebook.android:account-kit-sdk:4.27
属性中存储对GroupBox的引用:
Tag
现在您可以在点击处理程序中检索该引用:
Button btnSil = new Button();
btnSil.Tag = gBKisaMetin;
这种方法的不同之处在于Button不需要在GroupBox内部就可以工作。