增加TextBox高度而不增加字体大小

时间:2014-02-04 09:24:02

标签: c# winforms fonts textbox controls

我的应用程序中有一个UserControl,并且在其上安装了TextBox,其属性为 Docking.Fill

我有一种动态增长窗口/表单大小的情况,在这种情况下,我的所有控件都按照新比例重新调整大小,但我的文本框的高度不会改变。

解决方案1: 我必须设置字体大小以增加高度,但问题是,它重新调整我的应用程序中使用的所有控件的大小,控件中的一些文本也重叠。

我想要其他方式,在不影响字体大小的情况下,我可以在不使用 Multiline = True 的情况下在Height中增长TextBox。

如果有任何身体帮助会很棒,

2 个答案:

答案 0 :(得分:2)

您可以在设计器文件中执行此操作

this.textBox1.AutoSize = false;
this.textBox1.Size = new System.Drawing.Size(100, 20);

MSDN> TextBoxBase.AutoSize Property

答案 1 :(得分:2)

自定义函数,使用宽高比重新调整字体大小并增加TextBox的高度。

public void IncerseHeightTextBox(TextBox tb, float Aspect_Ratio_Height)
    {
        tb.AutoSize = false;
        tb.Width = (int)(tb.Width * (1.402+1.171)/2); //Width+height Ratio /2
        tb.Font = new Font(tb.Font.FontFamily, tb.Font.Size * Aspect_Ratio_Height);
        tb.Size = new Size(tb.Width, (int)(tb.Height * Aspect_Ratio_Height));
    }

和函数调用:

IncerseHeightTextBox(tb2, (float)1.171);