我有两种形式。一个是带有按钮的父表单和带有单选按钮的子表单。我想启用/禁用父窗体中的按钮基于子窗体中的单选按钮是否已启用。我应该举办活动还是有另一种方法来实现这一目标。
答案 0 :(得分:0)
事件是处理此问题的一种不错且强大的方法。 他们将需要更多的代码,但如果您想要一个可以在未来扩展的强大解决方案等,它可能是值得的。
另一方面,如果您只想快速解决问题,还有两个通用解决方案。
创建子表单时,可以向它传递对创建它的parrent表单的引用(通过构造函数)
类似
public partial class Form2 : Form
{
private Form1 parrentForm;
public Form2(Form1 parrent)
{
parrentForm = parrent;
}
创建子表单时,将其传递给引用
//from inside Form1
Form2 frm2 = new Form2(this);
您可以在Form1
中声明一个公共方法public void EnableButton() {
}
然后使用您存储的引用从form2调用它
parrentForm.EnableButton();
你甚至可以将Form1中的按钮公开(从gui中选择按钮,在属性窗格中将“Accessibility”属性更改为“Public”而不是默认的“Private”。
然后在form2中你可以做到
parrentForm.Button1.Enabled = false;
这些都是快速而有点肮脏的解决方案。 对于复杂的用途,事件更加清晰。
最后,选择最有意义的内容。
答案 1 :(得分:0)
我喜欢上面的答案,但只是提到,你也可以使用一个事件。
public event EventArg RadioButtonHasChanged;