Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Audo调整表单大小以适应不同的字体大小_C#_Winforms_.net 4.0 - Fatal编程技术网

C# Audo调整表单大小以适应不同的字体大小

C# Audo调整表单大小以适应不同的字体大小,c#,winforms,.net-4.0,C#,Winforms,.net 4.0,见上图。在右侧,我的应用程序运行在windows PC上,字体大小正常(100%),左侧是相同的应用程序,字体大小设置为125%(这在屏幕首选项中设置)。如您所见,左上角的两个按钮缺失 form属性。AutoScaleMode=Font,理论上应该可以解决这个问题,但事实并非如此。 所有左栏按钮都具有锚定=左|底。如果我将其设置为Left | Top,则底部的两个按钮将不可见 如何以较少的工作量解决此问题?我有大约100张这样的表格 Thx 我不能删除它。在那个按钮下,我有一个文本框,当应用程序

见上图。在右侧,我的应用程序运行在windows PC上,字体大小正常(100%),左侧是相同的应用程序,字体大小设置为125%(这在屏幕首选项中设置)。如您所见,左上角的两个按钮缺失

form属性。AutoScaleMode=Font,理论上应该可以解决这个问题,但事实并非如此。 所有左栏按钮都具有锚定=左|底。如果我将其设置为Left | Top,则底部的两个按钮将不可见

如何以较少的工作量解决此问题?我有大约100张这样的表格

Thx


我不能删除它。在那个按钮下,我有一个文本框,当应用程序启动时,它必须被隐藏

只是不要硬编码表单的Height属性,将其设置为TextBox的Top属性。或者少一点。还要注意,高度不是要使用的正确属性,它受用户为窗口标题字体选择的大小的影响。因此,无论视频适配器的DPI设置如何,表单都可能会出现错误。您希望改为设置ClientSize属性,如下所示:

    protected override void OnLoad(EventArgs e) {
        this.ClientSize = new Size(this.ClientSize.Width, SomeTextBox.Top);
        base.OnLoad(e);
    }

更详细地说,这必须在表单的加载事件中完成,如图所示。当它启动时,窗体已被重新缩放,因此您将知道它的高度。构造函数太早了。

您做了一些事情来阻止窗口变得足够高。当然,从屏幕截图上看不出来。是的,确实如此,在form.OnLoad中,我的Height=312,这在正常字体大小下可以正常工作。我应该如何根据字体大小调整此尺寸?我能从系统信息中得到一个乘数吗?再一次,没有任何关于你为什么写那个的暗示。把它删掉,我不能删掉。在那个按钮下,我有一个文本框,当应用程序启动时,它必须被隐藏。这就是为什么我要强迫形成高度。当我只是将表单高度更改为所需高度时,在一些操作之后,文本框变得可见。