一对夫妇的方法:
1 -商店Form1的变量 “setDateBox” 作为Form3的一个类的成员,然后访问来自所对应的复选框的CheckedChanged事件处理程序 “setNoDate” 的方法:
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
setDateBox.setNoDate(checkBox1.Checked);
}
2 -如果您不希望setDateBox存储为一个类的成员,或者您需要更新不止一种形式,你可以像其左右的时间内Form3定义事件:
public event EventHandler<CheckedChangedEventArgs> CheckBox1CheckedChanged;
...
public class CheckedChangedEventArgs : EventArgs
{
public bool CheckedState { get; set; }
public CheckedChangedEventArgs(bool state)
{
CheckedState = state;
}
}
创建Form1中的事件的处理程序:
public void Form1_CheckBox1CheckedChanged(object sender, CheckedChangedEventArgs e)
{
//Do something with the CheckedState
MessageBox.Show(e.CheckedState.ToString());
}
事件处理函数分配创建窗体后:
Form1 setDateBox = new Form1();
CheckBox1CheckedChanged += new EventHandler<CheckedChangedEventArgs>(setDateBox.Form1_CheckBox1CheckedChanged);
再火从Form3(事件后的复选框的选中状态改变):
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
if(CheckBox1CheckedChanged != null)
CheckBox1CheckedChanged(this, new CheckedChangedEventArgs(checkBox1.Checked));
}
希望这会有所帮助。
你应该命名你的表单和控件。 – SLaks
@Slaks,是的,我应该如何更改vs中的表单名称,以便在代码中使用名称Form1的所有内容都被更改? –
当您重命名表单时,Visual Studio会自动重命名所有对它的引用。 – SLaks