Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何触发复选框';即使在c#和asp.net中,也会更改一次未知的名称?_C#_Asp.net - Fatal编程技术网

如何触发复选框';即使在c#和asp.net中,也会更改一次未知的名称?

如何触发复选框';即使在c#和asp.net中,也会更改一次未知的名称?,c#,asp.net,C#,Asp.net,我写了一个函数,输入了一个复选框,但我不知道如何在checkedChanged之后触发他的未知名字 代码如下所示: private void ConEnable(CheckBox MyCheckBox, TextBox MyTextBox, bool MyBool) { MyCheckBox.Enabled = MyBool; MyTextBox.Enabled = MyBool; if (!MyBool) {// == false MyCheckBox

我写了一个函数,输入了一个复选框,但我不知道如何在checkedChanged之后触发他的未知名字

代码如下所示:

private void ConEnable(CheckBox MyCheckBox, TextBox MyTextBox, bool MyBool) 
{
    MyCheckBox.Enabled = MyBool;
    MyTextBox.Enabled = MyBool;
    if (!MyBool) {// == false
        MyCheckBox.Checked = MyBool;
        MyTextBox.Text = "";
        //MyCheckBox.CheckedChanged += new EventHandler(...);
    }
}
//另一个复选框更改了CheckBox2和CheckBox3的偶数…:

protected void CheckBox2_CheckedChanged(object sender, EventArgs e) {
    ConEnable(CheckBox1, TextBox1, !CheckBox2.Checked);
    ConEnable(CheckBox3, CheckBox2.Checked);
    ConEnable(CheckBox4, TextBox8, TextBox9, CheckBox2.Checked);
    ConEnable(CheckBox5, CheckBox2.Checked);
    //if (!CheckBox2.Checked) {
    //  ConEnable(CheckBox6, TextBox3, false);
    //  ConEnable(CheckBox7, TextBox4, TextBox5, false);
    //  ConEnable(CheckBox8, TextBox6, TextBox7, false);
    //}
    SetResult1();
  }
  protected void CheckBox3_CheckedChanged(object sender, EventArgs e) {
    ConEnable(CheckBox4, TextBox8, TextBox9, !CheckBox3.Checked);
    ConEnable(CheckBox5, !CheckBox3.Checked);
    ConEnable(CheckBox6, TextBox3, CheckBox3.Checked);
    ConEnable(CheckBox7, TextBox4, TextBox5, CheckBox3.Checked);
    ConEnable(CheckBox8, TextBox6, TextBox7, CheckBox3.Checked);
    if (!CheckBox3.Checked) {
      ConEnable(CheckBox6, TextBox3, false);
      ConEnable(CheckBox7, TextBox4, TextBox5, false);
      ConEnable(CheckBox8, TextBox6, TextBox7, false);
    }
    SetResult1();
  }
我希望它能触发以下这些事件: 前任:
我取消选中CheckBox2(CheckBox2变为false)->通过ConEnable函数触发CheckBox2\u CheckedChanged和CheckBox3变为false->触发我的复选框偶数(即CheckBox3\u CheckedChanged)在ConEnable中。->复选框6变为false和触发我的复选框偶数(即CheckBox6\u CheckedChanged)在ConEnable->…

中键入:
[Object Name].[Event]+=
,然后按tab键两次以创建事件的方法


注意:对象名称不同于对象类型

如果我正确理解了您的问题,您很难理解如何知道哪个复选框触发了事件

在下面的代码中,您可以看到,我们正在创建事件监听器,以
CheckedChanged
event toany复选框,该复选框正被传递到您的方法中,我们不需要知道任何有关它的信息。当此复选框将触发
CheckedChanged
事件时,将触发方法
checkedChangedEventHandler
,此方法将始终接受2个参数
对象发送方,EventArgs e
sender
是您在对象中的复选框,
EventArgs e
,该对象具有有关事件发生的附加信息。
然后,您可以将
发送者
强制转换为
复选框
,并将其用于您想要的任何目的

MyCheckBox.CheckedChanged += new EventHandler<EventArgs >(CheckChangedEventHandler); 

 void CheckChangedEventHandler(object sender, EventArgs e)
        {
            //sender is your checkbox;
            var checkbox = (CheckBox)sender;
        }
MyCheckBox.CheckedChanged+=新事件处理程序(CheckChangedEventHandler);
无效CheckChangedEventHandler(对象发送方,事件参数e)
{
//发件人是您的复选框;
var checkbox=(checkbox)发送方;
}
试试这个

private void ConEnable(CheckBox MyCheckBox, TextBox MyTextBox, bool MyBool) 
{
   MyCheckBox.Enabled = MyBool;
   MyTextBox.Enabled = MyBool;
   if (!MyBool) {// == false
   MyCheckBox.Checked = MyBool;
   MyTextBox.Text = "";
   MyCheckBox.CheckedChanged += mycheckbox_Changed;
}

  protected void mycheckbox_Changed(object sender, EventArgs e)
  {
   CheckBox checkbox = (CheckBox)sender;
  }

我尝试了你的代码。但是,似乎要将mycheckbox_更改为CheckedChanged。我可以在ConEnable函数中触发MyCheckBox吗?您必须注册具有相同委托签名的用户定义方法(MyCheckBox\u已更改)。因此,每当您触发事件时,它都会触发。请确保控件的autopost属性必须为true。因此,根据您的上述问题,您可以在ConEnable函数中注册方法后触发checkedchanged事件。在加载页面中添加checkedchanged事件很好。谢谢,这很有帮助^^