我创建了一个计时器类来监视软件的许可证。当发生错误时,我调用 ShowDialog() 来显示我的自定义窗口窗体。我的问题是如何禁用父窗口?这是我的问题的一个简单示例。正如您所看到的,一旦 MessageBox 弹出,您仍然可以从 MainForm 窗口键入。
MainForm1.cs 文件
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace TestProject
{
public partial class MainForm1 : Form
{
public MainForm1()
{
InitializeComponent();
}
private void MainForm1_Load(object sender, EventArgs e)
{
TimerClass1 timer = new TimerClass1();
}
}
}
消息框.cs 文件
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace TestProject
{
public partial class MessageBox : Form
{
public MessageBox()
{
InitializeComponent();
this.label1.Text = "Hello There";
this.button1.Text = "OK";
this.button1.DialogResult = System.Windows.Forms.DialogResult.OK;
}
}
}
TimerClass1.cs 文件
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Timers;
using System.Windows;
namespace TestProject
{
class TimerClass1
{
Timer _timer;
public TimerClass1()
{
_timer = new Timer(1);
_timer.Elapsed +=new ElapsedEventHandler(_timer_Elapsed);
_timer.Enabled = true;
}
private void _timer_Elapsed(object sender, ElapsedEventArgs e)
{
_timer.Stop();
MessageBox msg = new MessageBox();
msg.ShowDialog();
_timer.Start();
}
}
}