可能重复:
从用户控件获取对父控件的访问权限 - C#
我有btnMessage
我的表单Main
,我也有用户控制(uc
)。
当我单击btnMessage
时,它会打开uc
并且还会生成btnMessage.enabled = false
. 在uc
中,有一个名为 的按钮btnExecute
。
我想要的是,当我点击btnExecute
in时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
}
但是,仍然没有工作。当我编译时,我在 main 中有错误,在这一行:
public Main()
{
InitializeComponent();
formFunctionPointer += new functioncall(buttonHideorEnabled);
ucMessageTarget.userFunctionPointer = formFunctionPointer;
}
说,那个
对象引用未设置为对象实例(在 ucMessageTarget.userFunctionPointer = formFunctionPointer; 中)。
请帮忙。