使用多个实例访问自定义属性的类引用
本文关键字:自定义属性 引用 访问 实例 | 更新日期: 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.SelectedTab
是TabPage
类型,但你知道它实际上是TabPage
的一个子类CustomControl1
,你想把它转换为CustomControl1
(这就是(CustomControl1)
完成的)。
然后你可以访问你在CustomControl1
中定义的成员-例如buttonclicked
。