0

我是一名新的 C# 开发人员,我想在我的 winform 应用程序中的图像中创建一个热点。我按照此处发布的解决方案进行操作,但我不知道应该将坐标放在哪里才能使此方法有效:

protected override void OnMouseMove(MouseEventArgs mouseEvent) 
{ 
     string X = mouseEvent.X.ToString();
     string Y = mouseEvent.Y.ToString(); 
}

我应该把坐标放在哪里?我有两个坐标 (X,Y): 110, 45

4

1 回答 1

2

热点我觉得应该是一个小的矩形区域而不仅仅是一个坐标。假设您希望它是一个宽度为 20 的小正方形区域,那么您将编写如下内容:

编辑:

假设您的表单上有一个名为 PictureBox1 的 PictureBox,并且您希望从图片框的左上角开始的一个 20x20 大小的小矩形成为热点(即,当您将鼠标悬停在它上面时,您会看到一个 HAND 光标)然后打开PictureBox 的 MouSeMove 事件这样写:

 private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
    {
        if (e.X > 0 && e.X < 20 && e.Y > 0 && e.Y < 20)
            this.Cursor = Cursors.Hand;
        else
            this.Cursor = Cursors.Default;
    }

请记住,我们只是显示手形光标来表示一个我们还没有处理过点击的热点,使它真正成为一个网络类型的热点。如果您想在 Click 上做某事,请尝试使用 MouseUp 事件,在 MouseUp 事件中,与上面相同的 IF 子句将为您提供用户单击热点区域的条件。

于 2012-07-04T10:27:15.723 回答