按钮这样做:如果用户在按钮控件上按住鼠标左键并将光标移出控件,则按钮控件将其外观更改为默认值,并且如果仍然按住鼠标按钮,并且光标输入一个按钮控件,控件将其外观更改为按下的版本。我正在尝试使用 PictureBox 模仿按钮,但是当鼠标在释放鼠标左键之前离开 PictureBox 时,PictureBox 的图片在释放鼠标按钮之前不会改变。
我正在尝试这样做,因为按钮控件看起来不像我想要的那样。
如何使用图片框模仿按钮控件,其行为与按钮完全一样?
按钮这样做:如果用户在按钮控件上按住鼠标左键并将光标移出控件,则按钮控件将其外观更改为默认值,并且如果仍然按住鼠标按钮,并且光标输入一个按钮控件,控件将其外观更改为按下的版本。我正在尝试使用 PictureBox 模仿按钮,但是当鼠标在释放鼠标左键之前离开 PictureBox 时,PictureBox 的图片在释放鼠标按钮之前不会改变。
我正在尝试这样做,因为按钮控件看起来不像我想要的那样。
如何使用图片框模仿按钮控件,其行为与按钮完全一样?
这是设计使然,控件将 Capture 属性设置为 true,因此当您将鼠标移到控件矩形之外时,它会在按住按钮的同时继续接收鼠标消息。
当您看到它移出时,您可以将其关闭:
private void pictureBox1_MouseMove(object sender, MouseEventArgs e) {
var box = (PictureBox)sender;
if (!box.DisplayRectangle.Contains(e.Location)) box.Capture = false;
}
尝试使用 DragLeave 事件而不是 MouseLeave 事件。