2

我有一个应用程序可以在两种不同的设备上运行——一个屏幕尺寸为 240x320,另一个为 480x640。

对于所有形式的酒吧,VS 生成的代码都很好:

this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
this.AutoScroll = true;

对于一种形式,我正在捕获签名。我正在通过带有图形处理程序的面板来执行此操作;捕获鼠标按下和移动事件;这会生成一个矢量点列表,我可以用它来画线。

在较小的分辨率屏幕上,这很好。在更高的分辨率上,我无法显示我的线条。我认为这是因为面板超出了窗口窗体的大小。

创建的表单大小为 240 x 268;我认为标准尺寸 - 我没有手动设置它,VS为我做这个。

为了让面板在高分辨率设备上的正确位置,坐标是 3, 290;即,290 超过 268。面板的宽度也是 448,比 240 稍大。

我正在使用 .net 2.0(以后不能使用)。我想我需要调整表单的大小以使其更大,但我确实想保留表单上其他控件的现有调整大小。

我不知道该怎么做。

4

2 回答 2

1

使表单停靠以填充,然​​后使用Anchor属性确保表单内的控件按预期调整大小。

如果您想要自定义单个控件如何调整大小的选项,则不要在其上设置锚属性,而是处理Resize事件并在那里的代码中执行自定义调整大小/重新定位。

例如

private void form_Resize(object sender, EventArgs e)
{
    // Center the control without changing width. Other controls are anchored.
    this.control.Left = (this.Width - this.control.Width) / 2;
}
于 2011-07-11T09:45:34.273 回答
0

我写这个答案是为了那些将来可能会遇到类似问题的人。PaulG 为我指明了正确的方向,但我发现根本原因是别的。

我拥有的 PDA 项目使用“FormFactor WindowsMo​​bile 6 Classic”,其默认大小为 240 x 268。

将此更改为“Windows Mobile 6 Professional VGA”会创建更大的表单大小。

这让我能够为更大的尺寸正确定位东西;然后将 AutoScaleMode 转换为 DPI;并手动调整面板的大小使其一切正常。

IE,从大变小很容易;我没有变小到更大的工作。

于 2011-07-12T02:39:41.053 回答