将WinForm隐藏2分钟,然后再循环显示

时间:2015-09-24 00:17:03

标签: .net vb.net winforms

我有一个在VB.NET中创建的表单我在该表单上填充字段并在For Each...Next循环中向用户显示。

它基本上有一个PictureBox,就像一个关闭按钮 - 我正在捕获click事件以关闭表单。

但是我现在想让用户选择能够点击虚拟关闭按钮,并保持表格关闭2分钟(即暂停执行2分钟。因为如果用户点击中间的话,该怎么办?循环?)...然后一旦2分钟结束,我希望表格显示下一次数据迭代。

这可能吗?

我正在发布我的程序的一些示例代码:

For intI As Integer = 0 To dvNotifications.Count - 1
    //Just population some normal fields here...
    Dim CustomNotification As New CustomNotification
    CustomNotification.lblSubject.Text = IIf(strSubject = String.Empty, "[No Subject]", strSubject)

    CustomNotification.ShowDialog() 'Just before the next iteration I show the form...
Next

1 个答案:

答案 0 :(得分:0)

这里你如何使用计时器(用c#编写,因为你的原始标签是c#)

class FormController
{
    private Timer _timer = new Timer();
    private MyForm _form;

    private void StartForm()
    {
        if (_form == null)
            _form = new MyForm(_timer);
        f.Show();
    }

    private void OnTimerElapsed()
    {
        _timer.Stop();
        StartForm();
    }

}


// Your form shows and does something like this
// In your form

class MyForm
{
    private Timer _timer;

    private void OnFormClosing(object sender, CancelEventArgs e)
    {
        _timer.Interval = 120000; //ms
        _timer.Start();
    }

}

当然,您需要连接所有事件等等。但这应该让您知道它是如何工作的。

此代码表格将被关闭[销毁/处理],每次都会创建新的代码。如果您想保留同一个实例,请使用表单Show/Hide,然后OnFormClosing上的代码将显示在OnVisibileChanged