如何触发复选框';即使在c#和asp.net中,也会更改一次未知的名称?
我写了一个函数,输入了一个复选框,但我不知道如何在checkedChanged之后触发他的未知名字 代码如下所示:如何触发复选框';即使在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
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事件很好。谢谢,这很有帮助^^