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

本文关键字:自定义属性 引用 访问 实例 | 更新日期: 2023-09-27 18:14:05

我有一个条件,我有一个用户单击一个按钮,它启动一个自定义控件。基本控件是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);
}
}

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

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

在您的循环中,您指的是cust -但这不是您的循环变量。当您创建一个新的自定义控件时,您可能会覆盖cust

如果控件实际上是制表符,则需要引用制表符。比如:

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

因为TabControl1.SelectedTabTabPage类型,但你知道它实际上是TabPage的一个子类CustomControl1,你想把它转换为CustomControl1(这就是(CustomControl1)完成的)。

然后你可以访问你在CustomControl1中定义的成员-例如buttonclicked