[英]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.