【问题标题】:Make a Picturebox Appear on Mouse Location When Moused is Clicked in C#在 C# 中单击鼠标时使图片框出现在鼠标位置
【发布时间】:2010-11-26 14:30:32
【问题描述】:

我制作了一个程序来测量两个用户放置的图片框的距离。目前一切正常,除了我希望点去的地方,图片框不会进入我点击的那个位置。这是我在图片框的 Mouseclick 事件中的当前代码,两个点(图片框)将被放置和测量:

if (Dotter == 1)
        {
            dot1.Visible = true;
            dot1.Location = e.Location;
            Dotter = 2;
        }
        else if (Dotter == 2)
        {
            dot2.Visible = true;
            dot2.Location = e.Location;
            Dotter = 1;
        }

这是目前两个图片框的实际放置功能,请帮忙

谢谢

额外信息:

它在图片框中,可以使用这两个点测量图像,并且在它的鼠标点击事件中,它在一个 Windows 窗体上。此外,当我单击它们时,它们被放置但距离我单击的位置有几英里远,有时它们甚至不应该出现在图片框之外。

【问题讨论】:

  • 你能分享更多代码吗?更具体地说,上述代码所在的事件处理程序。另外,你点击的是什么控件?表格?还是另一个PictureBox
  • 这是一个 Windows 窗体应用程序吗?如果是这样,我相信location 属性决定了图片框的左上角。这可能会影响行为。
  • 另一个问题:当你说“他们没有去我点击的地方”时,你的意思是他们去别的地方吗?还是哪里都不去?
  • 基本上它使“点”图片框远离我单击的位置,有时会离开主图片框,它们应该留在其中而不是显示出来

标签: c# picturebox mouseclick-event


【解决方案1】:

感谢您的帮助,这是我为使其正常工作所做的工作。我已将代码的 e.Location 部分更改为:

如果(多特 == 1) { dot1.Visible = true; dot1.Left = e.Location.X + capturebox.Left - 10; dot1.Top = e.Location.Y + capturebox.Top - 10; 多特 = 2; } 否则如果(多特 == 2) { dot2.Visible = true; dot2.Left = e.Location.X + capturebox.Left - 10; dot2.Top = e.Location.Y + capturebox.Top - 10; 多特 = 1; }

所以基本上将点的位置更改为 Left 和 Top,然后获取 x 和 y 的鼠标单击位置,然后通过从每个减去 10 来使点看起来在它的中间。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-21
    • 2013-02-05
    • 1970-01-01
    • 2021-08-14
    • 1970-01-01
    相关资源
    最近更新 更多