更改按钮单击的功能?

时间:2011-12-16 21:06:09

标签: c# winforms

我知道答案可能非常明显,但我在这里有一个完整的大脑放屁。

我想要的是一个带有两个按钮的简单表格。第一个按钮显示消息“1”。单击第二个按钮后,单击时第一个按钮显示“2”。再次单击第二个按钮后,它会返回“1”。

用javascript学习编程后,我仍在思考javascript。我的第一个思路是:     myButton.onclick = ...

之后我唯一想到的就是在第一个按钮的click函数中有一个条件,然后使用第二个按钮点击来改变一个布尔...

有更好的方法吗?

6 个答案:

答案 0 :(得分:1)

make button2更改单击button1时调用的方法:

    private void button1_Click(object sender, EventArgs e)
    {
        Text = "1";
    }
    private void button1_Click2(object sender, EventArgs e)
    {
        Text = "2";
        button1.Click -= button1_Click2;
        button1.Click += button1_Click;
    }
    private void button2_Click(object sender, EventArgs e)
    {
        button1.Click -= button1_Click;
        button1.Click += button1_Click2;
    }

答案 1 :(得分:0)

你必须myButton.onclick-=function_name

+ =是添加功能

- =是删除功能

答案 2 :(得分:0)

让第二个按钮的点击处理程序设置一个消息变量,只需让第一个按钮的点击处理程序显示它。

答案 3 :(得分:0)

编辑:我为asp.net写了这个。转换为winforms并不困难。

声明一个字符串变量:

public static mystring = "1";

在button2_click上,您可以更改该值。我正在展示永久更改它的简单情况,但您可以以任何您喜欢的方式编写代码来替换:

protected void btn2_Click(object sender, EventArgs e)
{
    mystring = "2";
}

例如,要在1和2之间交替,可以设置int n = 1的值,并让btn2将值设置为(3-n).ToString();

然后做:

protected void btn1_Click(object sender, EventArgs e)
{
    Response.Write(mystring);
}

答案 4 :(得分:0)

我明白了,第一次点击button2并第二次点击时会发生什么。但如果你想说它必须遵循的模式,那么:

Bool bln = true;

private void button2_Click(object sender, EventArgs e)
{
    if(bln)
       text1();
    else
       text2();

    bln = !bln;
}

private void text1()
{
   // Whatever
}

private void text2()
{
   // Whatever
}

使用您要查找的任何内容填充方法。在这里,这些方法也可以重复用于button1点击事件。

希望它有所帮助。

答案 5 :(得分:0)

您始终可以通过以下方式使其工作:

private void button1_Click(object sender, EventArgs e)
{
    button1.Text = "Button 1 Text";
    MessageBox.Show("B1 Function1");
    button1.Click -= button1_Click;
    button1.Click += button1_Click2;
}

private void button1_Click2(object sender, EventArgs e)
{
    button.Text = "Button 1 Text 2";
    MessageBox.Show("B1 Function2");
    button1.Click -= button1_Click2;
    button1.Click += button1_Click;
}