可能重复:
Get access to parent control from user control - C#通过访问控制中启用表单按钮
我有我的btnMessage
形式Main
上,我也有用户控件(uc
)。
当我点击btnMessage
时,它将打开uc
并且还使btnMessage.enabled = false
。在uc
中,有一个按钮叫做btnExecute
。
我想要的是当我点击btnExecute
在uc
,btnMessage
在Main
表格将被禁用。我如何做到这一点?
这里的更新代码:
我使用功能main.cs
public Main()
{
InitializeComponent();
formFunctionPointer += new functioncall(buttonHideorEnabled);
ucMessageTarget.userFunctionPointer = formFunctionPointer;
}
public delegate void functioncall(bool _status);
private event functioncall formFunctionPointer;
public void buttonHideorEnabled(bool _status)
{
btnMessageTarget.Enabled = _status;
}
和uc.cs
:
public static string agentName = UtilitiesToolkit.agentMessageTarget;
public static string strn;
public UcMessageTarget(string str)
{
InitializeComponent();
strn = str;
}
public Delegate userControlPointer;
public Delegate userFunctionPointer;
private void btnExecute_Click(object sender, EventArgs e)
{
btnExecute.enabled = false;
userFunctionPointer.DynamicInvoke(false);
//I want btnMessage in Main form also disabled, please tell me how
}
,但仍,没有工作。当我编译,我有错误在主,在这一行:
public Main()
{
InitializeComponent();
formFunctionPointer += new functioncall(buttonHideorEnabled);
ucMessageTarget.userFunctionPointer = formFunctionPointer;
}
说,那
对象引用没有被设置为对象的实例(在 ucMessageTarget.userFunctionPointer = formFunctionPointer; )。
请大家帮忙。
当我单击uc中的btnExecute时,如何让btnMessage enabled = false? –