最大化时WinForms(.NET)按钮锚定

时间:2009-04-10 18:50:54

标签: c# winforms anchor button

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

我有一个VB.NET WinForms应用程序。我为所有控件设置了锚属性,以便在窗体最大化时调整所有控件以显示体面。 (但是还没有进行手动调整大小)。

无论如何,问题是:

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

我已经截取了表单的截图,因此您可以看到我正在谈论的内容。 :/

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

我需要设置哪些其他属性(y | ies)才能使按钮正确显示? :/(按钮会显示在例如“1-1”,“2-3”等的框中。

谢谢,
-Zack

2 个答案:

答案 0 :(得分:3)

似乎你已经将左上角和右下角固定在你想要的只是左上角。

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

答案 1 :(得分:2)

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

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

你甚至可以自动生成这个位图而不会有太多麻烦(如果你有一个模式,你可以点击图像的左上角然后右下角来定义一个新区域)

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