【发布时间】:2014-08-04 00:54:16
【问题描述】:
我正在尝试使用 c# 将列表框和图片动态添加到选项卡控件中动态创建的选项卡页中。表单有一个按钮,它可以为 tabcontrol 动态创建标签页,并在内部添加列表框和一些其他内容。
问题是当我第二次点击按钮时,它会删除前一个选项卡中的所有内容并将其添加到最后一个选项卡中。
private void AddNewPr_Click(object sender, EventArgs e)
{
TabPage tab = new TabPage();
ListBox list = new ListBox();
ListBox list2 = new ListBox();
PictureBox pictureBox = new PictureBox();
PictureBox pictureBox2 = new PictureBox();
tab.Name = "tabPage" + n;
tab.Text = "Property " + n;
tabControl1.Controls.Add(tab);
list.Items.AddRange(new object[] {
"Id",
"Name"
});
//more list properties here///
//other items here created/////
tab.Controls.Add(list);
tab.Controls.Add(list2);
tab.Controls.Add(pictureBox);
n++;
}
我还声明了一个整数增量器,以便所有新内容都有自己的名称标识。 我遇到的另一个问题是我无法访问也是动态创建的图片框点击事件处理程序。
感谢您的帮助..!!
【问题讨论】:
-
尝试更改它,以便将
tab添加到TabControl的Items属性,而不是Controls属性。所以应该是:tabControl1.Items.Add(tab). -
好的,我解决了内容问题,因为我必须在选项卡声明之后初始化列表和框。现在唯一的问题是点击事件处理程序的访问,以便我可以将项目从动态列表 1 添加到 2
-
实际上,您可能使用的是 WinForms,而不是 WPF。请为您使用的技术添加标签。
-
还是不知道怎么从pictureBox_Click(object sender, EventArgs e){}中访问list和list2
-
如果您想从类中的其他方法访问它们,您需要创建类级变量来保存对
list和list2的引用。