如何实现,弹出一个提示框后,如果用户不单击,以后不会响应?
---------------------------------------
我的思路,我在窗体上放一个计时器(小钟表),
我想实现只要到了指定时间,就每隔1秒钟弹出一个提示框,但是用户如果不响应,就不再继续弹出,如果用户按上确定键进行响应了,并且没有关闭检测,则到秒钟再次弹出提示框。现在的问题是,如果到了指定时间,就每一秒就弹一个提示框,用户不响应,应一直连着弹。
我如何做到用户不响应的话,就弹出一个放在屏幕上,目的是让用户看到就行了。比如我下面的代码,就不行, private void timer1_Tick(object sender, EventArgs e)
{
string strtimeset;
strtimeset = txt1.Text.Trim();
MessageBox.Show(时间到了,请打卡"); }
---------------------------------------
我的思路,我在窗体上放一个计时器(小钟表),
我想实现只要到了指定时间,就每隔1秒钟弹出一个提示框,但是用户如果不响应,就不再继续弹出,如果用户按上确定键进行响应了,并且没有关闭检测,则到秒钟再次弹出提示框。现在的问题是,如果到了指定时间,就每一秒就弹一个提示框,用户不响应,应一直连着弹。
我如何做到用户不响应的话,就弹出一个放在屏幕上,目的是让用户看到就行了。比如我下面的代码,就不行, private void timer1_Tick(object sender, EventArgs e)
{
string strtimeset;
strtimeset = txt1.Text.Trim();
MessageBox.Show(时间到了,请打卡"); }
if (MessageBox.Show("警告?", "警告", MessageBoxButtons.YesNo) == DialogResult.No)
{
}
else
{
}
把代码都放在if里
其实可以在按确定时hide,需要时再show.
public partial class Form1 : Form
{
Form dialogFM = new Form(); public Form1()
{
InitializeComponent();
} private void Form1_Load(object sender, EventArgs e)
{
dialogFM = new Form();
dialogFM.Width = 300;
dialogFM.Height = 200;
dialogFM.FormBorderStyle = FormBorderStyle.FixedSingle;
dialogFM.MinimizeBox = false;
dialogFM.MaximizeBox = false;
dialogFM.StartPosition = FormStartPosition.CenterScreen;
//
Label lbl = new Label();
lbl.Text = "时间到了,请打卡";
lbl.TextAlign = ContentAlignment.MiddleCenter;
lbl.Font = new Font(new FontFamily("宋体"), 18);
lbl.Dock = DockStyle.Top;
dialogFM.Controls.Add(lbl);
//
CheckBox chk = new CheckBox();
chk.Text = "关闭检测";
chk.Location = new Point(20, 50);
chk.CheckedChanged += new EventHandler(chk_CheckedChanged);
dialogFM.Controls.Add(chk);
//
Button btn = new Button();
btn.Text = "确定";
btn.DialogResult = DialogResult.OK;
btn.Location = new Point((dialogFM.Width - btn.Width) / 2, 100);
dialogFM.Controls.Add(btn);
} void chk_CheckedChanged(object sender, EventArgs e)
{
dialogFM.Tag = ((CheckBox)sender).Checked;
} private void timer1_Tick(object sender, EventArgs e)
{
if (dialogFM.Tag == null || !(bool)dialogFM.Tag)
{
if (!dialogFM.IsHandleCreated && dialogFM.ShowDialog() == DialogResult.OK)
{
//todo:
}
}
}
}
messagebox()
定时器开
我的目的是不想让人烦。只要用户不关,就一直放在那里。谁知道,这个messagbox会一直弹下去。vb就不会这样呀。晕
你说错了,我开始也是这样理解的,但是实际情况不是这样的。
虽然弹出对话框了,但是计时器在工作,所以尽管不关这个对话框,后面的操作会继续。
定时器并不管你,是不是关了对话框。谢谢各位,我发现最好的办法,就是先关了的计时器,messagebox.show()后在打开计时器,这是好办法!