我有一个条件,我有一个用户单击一个按钮,它启动自定义控件。基本控件是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);
}
}
我总是添加最后一个控件而不是选中的控件。感谢您的建议,谢谢。
答案 0 :(得分:2)
在你的循环中,你指的是cust
- 但这不是你的循环变量。据推测,您在创建新的自定义控件时会覆盖cust
。
如果控件实际上是选项卡,则需要引用选项卡..类似于:
var custPage = (CustomControl1)TabControl1.SelectedTab;
MessageBox.Show(custPage.buttonclicked);
由于TabControl1.SelectedTab
的类型为TabPage
,但您知道它实际上是名为TabPage
的{{1}}的子类,您希望将其强制转换为{{ 1}}(那是CustomControl1
完成的事情)。
然后,您可以访问CustomControl1
中定义的成员 - 例如(CustomControl1)
。