c#鼠标事件序列

时间:2018-03-21 16:07:05

标签: c# mouse

问题...为什么这段代码只生成一个消息框“Down”?我没有得到Up。如果我阻止代码,up up工作。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Mouse
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }   
        private void Form1_MouseUp(object sender, MouseEventArgs e)
        {
           MessageBox.Show("Up");                     
        }
        private void Form1_MouseDown(object sender, MouseEventArgs e)
        {
           MessageBox.Show("Down");
        }     
    }
}

2 个答案:

答案 0 :(得分:2)

因为您正在展示MessageBox

每当发生鼠标按下事件时,都会弹出MessageBoxMessageBox将位于前台,而up事件将位于MessageBox而不是表单上。因此,表单中的up事件不会触发

只需执行Console.WriteLine而不是MessageBox,它应该按预期工作

答案 1 :(得分:0)

如果删除消息框调用,它们都将触发。这是对鼠标事件的干扰,因为你失去了对表单的关注。而不是使用消息框尝试使用...

  Console.WriteLine("MouseUp"); 

这将显示在输出窗口中,不会干扰事件