我如何链接多个按钮与他们相应的标签,而使用定时器?(Visual Studios 2015)
本文关键字:标签 定时器 2015 Visual Studios 链接 何链接 他们 按钮 | 更新日期: 2023-09-27 18:09:30
我从之前的问题中得到了答案,但它不完全正确。我想让button1
和button2
做同样的事情,但事实并非如此。我也想知道我应该如何添加更多的按钮到代码(我总共需要4个按钮)。我不知道是否有一种更简单的方法来达到我想要做的同样的结果。如果有,请给我解释一下。我一直在努力使用c#(或者我认为他们称之为Windows,我不太确定),因为我对它相对来说是新的。我正在努力学习如何修复我的代码,但是,这个答案不是我熟悉的。我通常用Button btn = (Button)sender;
和tmr.Tick += new EventHandler(timer_Tick);
。这是我得到的答案(我编辑了一点,所以可能是我错了)。
public Form1()
{
InitializeComponent();
this.SerCorrespondingButtons();
this.SetCorrespondingInitialButtonInscriptions();
}
System.Windows.Forms.Timer tmr = new System.Windows.Forms.Timer();
private Dictionary<Button, Label> correspondingControls;
private Dictionary<Button, string> initialButtonInscriptions;
private List<string> sayingsList;
private Button currentButton;
private int i;
private void SerCorrespondingButtons()
{
correspondingControls = new Dictionary<Button, Label>()
{
{this.button1, this.label1},
{this.button2, this.label2},
};
}
private void SetCorrespondingInitialButtonInscriptions()
{
this.initialButtonInscriptions = new Dictionary<Button, string>()
{
{this.button1, this.button1.Text},
{this.button2, this.button2.Text}
};
}
private void button2_Click(object sender, EventArgs e)
{
var button = sender as Button;
if (this.currentButton != null)
{
this.currentButton.Enabled = true;
this.currentButton.Text = this.initialButtonInscriptions[this.currentButton];
this.currentButton.Click += this.button2_Click;
tmr.Enabled = false;
tmr.Tick -= timer2_Tick;
}
this.currentButton = button;
var saying = this.correspondingControls[button];
saying.Visible = true;
button.Text = "Click To Hide Saying";
button.Click -= button2_Click;
button.Click += button2_Click2;
}
private void button2_Click2(object sender, EventArgs e)
{
var button = sender as Button;
var saying = this.correspondingControls[button];
saying.Visible = true;
if (saying.Visible)
{
button.Enabled = false;
saying.Visible = false;
button.Text = "Reactivating in 5 seconds";
tmr.Interval = 1000;
button.Click -= button2_Click2;
button.Click += button2_Click;
this.i = 4;
tmr.Tick += timer2_Tick;
tmr.Enabled = true;
}
}
private void timer2_Tick(object sender, EventArgs e)
{
if (i != 0)
{
this.currentButton.Text = "Reactivating in " + i + " seconds";
i -= 1;
}
}
它没有附带注释,所以,如果你能在你的回答中添加注释/评论,我将非常感激。如果你也能给我的链接,我应该查找我真的很感激!就像我说的,我试过其他方法,但是,他们都没有接近这种方式。提前谢谢你!
a Button_click
是一个事件,在c#中,事件是用来通知对象任何修改或发生在特定对象上的事情。
按钮是一个对象,它有许多与Click相同的事件
所以如果你想让你的按钮做同样的事件,你可以只听他们所有的,并为他们所有的一个FUNCTION/OPERATION
你可以参考这个链接c#如何为多个按钮使用一键事件处理程序