我想添加一个循环:
private void button5_Click(object sender, EventArgs e)
{
}
这将运行Form1
5次,延迟3秒而不是关闭所有,而不是再次执行。
我正在使用此代码手动打开它们;
Form1 form = new Form1();
form.Show();
我需要用;
来停止循环private void button6_Click(object sender, EventArgs e)
{
}
我是编码的新手,如果你能用代码示例解释它,我将不胜感激。
答案 0 :(得分:2)
我不确定你为什么要这个。但这是方法。
你需要Timer
,间隔为3000毫秒(3秒),每隔一段时间就会触发一次事件。在该活动中,您将打开表格,如果打开5个表格,将关闭所有表格。
Timer _timer = new Timer(); // This is the timer
List<Form> forms = new List<Form>(); // This will hold list of forms.
private void button1_Click(object sender, EventArgs e)
{
_timer.Enabled = !_timer.Enabled; // toggle event with this button.
}
private void Form1_Load(object sender, EventArgs e) // initialize timer with form load event
{
_timer.Interval = 3000; // set interval
_timer.Tick += OpenUpForm; // set event
}
private void OpenUpForm(object sender, EventArgs e) // this is the event that should be fired every 3 seconds
{
if (forms.Count == 5) // if forms reached 5 attempt to close all
{
// ForEach will perform this actions for every form in forms list
forms.ForEach(f =>
{
f.Close(); // close form
f.Dispose(); // free resources
});
forms.Clear(); // clear the list
return;
}
forms.Add(new Form()); // add a new form to list
forms.Last().Show(); // show the form
}
请注意,这只会打开空表单。如果要打开特定表单,则应创建该表单的5个副本并将其放入列表中。然后打开和关闭它们。