具有访问自定义属性的多个实例的类引用

时间:2014-07-21 22:34:09

标签: c#

我有一个条件,我有一个用户单击一个按钮,它启动自定义控件。基本控件是TabPage。

CustomControl1 cust = new CustomControl1();

我的CustomControl中有属性,如下所示:

private string ButtonName = string.Empty;

public string buttonclicked
{
get { return ButtonName; }
}

要么我没有正确地考虑这个问题,要么我错过了一些东西。

如果我尝试引用该控件,则返回最后一个控件值,而不是正在使用的控件。我尝试了各种各样的事情,但是无法让选定的标签返回值。

foreach(Tabpage page in this.TabControl1.TabPages)
{
if(page.name == this.TabControl1.SelectedTab.Name)
{
 MessageBox.Show(cust.buttonclicked);
}
}

我总是添加最后一个控件而不是选中的控件。感谢您的建议,谢谢。

1 个答案:

答案 0 :(得分:2)

在你的循环中,你指的是cust - 但这不是你的循环变量。据推测,您在创建新的自定义控件时会覆盖cust

如果控件实际上是选项卡,则需要引用选项卡..类似于:

var custPage = (CustomControl1)TabControl1.SelectedTab;
MessageBox.Show(custPage.buttonclicked);                 

由于TabControl1.SelectedTab的类型为TabPage,但您知道它实际上是名为TabPage的{​​{1}}的子类,您希望将其强制转换为{{ 1}}(那是CustomControl1完成的事情)。

然后,您可以访问CustomControl1中定义的成员 - 例如(CustomControl1)