簡體   English   中英

改變按鈕的單擊功能?

[英]Changing the function of a button click?

我知道答案可能確實很明顯,但是我在這里放屁。

我想要做的是有一個帶有兩個按鈕的簡單表單。 第一個按鈕顯示消息“ 1”。 單擊第二個按鈕后,單擊時第一個按鈕顯示為“ 2”。 再次單擊第二個按鈕后,返回到“ 1”。

學習了使用javascript編程后,我仍然在考慮javascript。 我的第一個思路是:myButton.onclick = ...

之后,我唯一想到的就是在第一個按鈕的click函數中有條件,並使用第二個按鈕的click來更改布爾值。

有一個更好的方法嗎?

使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;
    }

您始終可以通過以下方式使其工作:

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;
}

您必須要做myButton.onclick-=function_name

+ =是要添加功能

-=是刪除功能

讓第二個按鈕的單擊處理程序設置一個消息變量,只需讓第一個按鈕的單擊處理程序顯示它即可。

編輯:我為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);
}

我了解,第一次和第二次單擊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 click事件。

希望能幫助到你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM