0

好的,我已经用谷歌搜索了,但也许我奇怪地搜索了。:/

我有一个 VB.NET WinForms 应用程序。我为所有控件设置了锚属性,以便在窗体最大化时调整所有控件的大小以使其看起来不错。(但是还没有手动调整大小)。

无论如何,问题是:

我会在主 GUI 表单/图片上为按钮设置相同的属性(现在使用单个按钮进行测试)。当我通过 F5 运行程序时,它看起来不错。但是当我最大化表单时,整个按钮的覆盖范围超出了应有的范围。

我已经截取了表格的屏幕截图,因此您可以直观地看到我在说什么。:/

之前:http: //zack.scudstorm.com/before.png
之后:http: //zack.scudstorm.com/after.png

我需要设置哪些其他属性(y|ies)才能正确显示按钮?:/(按钮越过显示“1-1”、“2-3”等的框。

谢谢,
-扎克

4

2 回答 2

3

当您想要的只是左上角时,似乎您已经锚定了左上角和右下角。

编辑:如果它只是一个在winform更改时不会改变的图像,那么根本不要锚定你的按钮。把它们放在他们去的地方。如果您正在缩放图像,那么我要么检测图像上的点击并进行缩放数学运算,要么进行缩放数学运算并在 Form.OnResize 事件的代码中设置我的按钮。

于 2009-04-10T18:55:23.880 回答
2

看来您的目标只是能够处理“计算机”上的点击......

对此类任务有用的一个选项是创建一个“覆盖”位图(不显示,但与源位图的大小完全相同),它使用不同的颜色来表示所有可点击区域。(例如(R=0,G=0,B=0)对于计算机 0、(0,0,1)对于计算机 1 等)

您甚至可以自动生成此位图而无需太多麻烦(如果您有一种模式,您可以单击图像的左上角然后右下角来定义新区域)

单击鼠标时,您可以检查叠加层中鼠标位置的缩放坐标处的像素,并确定它们的单击对应于什么。这比创建大量控件要容易得多,并且可以更容易地创建非矩形的可点击区域。

于 2009-04-10T18:58:34.123 回答