告诉大家一个奇怪的现象
建立一个窗口程序,加入一个button和一个timer,timer开始enabled=False,时间比如5s,button_click里边写timer1.enabled=true; timer_tick事件里写MessageBox.Show("aaaaa");下边运行这个程序
点击button,在5s内,开始拖动这个窗口移动,千万别释放,一直拖动窗口到处跑,等待自动弹出模式对话框,等这个对话框弹出来,你就会无论如何也不能移动这个弹出的对话框了,大家实验下是不是这样,如果是这样谁能解释下为什么。
建立一个窗口程序,加入一个button和一个timer,timer开始enabled=False,时间比如5s,button_click里边写timer1.enabled=true; timer_tick事件里写MessageBox.Show("aaaaa");下边运行这个程序
点击button,在5s内,开始拖动这个窗口移动,千万别释放,一直拖动窗口到处跑,等待自动弹出模式对话框,等这个对话框弹出来,你就会无论如何也不能移动这个弹出的对话框了,大家实验下是不是这样,如果是这样谁能解释下为什么。
{
timer1.Enabled = false;
MessageBox.Show("timer1");
} private void button1_Click(object sender, EventArgs e)
{
timer1.Enabled = true;
}
如果以上步骤中没有拖动form1标题条的步骤,就能移动得了模式对话框。
就是问为什么多了拖动form1标题条的步骤,模式对话框也不能被移动了。
之所以会出现这个怪现象,会不会是窗体收不到HTCAPTION信息? 如果是的话,会不会是因为Timer1不断产生对话框所致? 请大家一起讨论下!
另外16 、17楼提供了一些思路,我也做过实验,不仅仅点击标题条移动会这样,如果这个时候点击窗口边界,对窗口改变大小也是一样的存在如上问题。
反正都有如下特点
1、鼠标消息只有mousedown,没有mouseup
2、消息都是触发在非客户区
但是为什么会这样,仍然找不到答案。