public class SingleLineTextBox : TextBox
{
protected override void OnCreateControl()
{
base.OnCreateControl();
if (Font is Font font)
using (font)
{
// Suppress the single-line textbox's fixed height
AutoSize = false;
// Increase size of textbox contents to compensate
// for vertical shift
Font = new Font(font.FontFamily, font.Size + 0.75F);
}
}
}
4条答案
按热度按时间zlhcx6iw1#
试试这个:
它不会出现在智能感知中,但它会起作用。
要让它与设计器一起工作,你必须制作自己的TextBox:
1sbrub3j2#
技巧步骤:
1.设置多行= true
1.不需要改变字体大小。
1.更改最大长度。这样它就不会进入下一行。
bwitn5fc3#
对于我想做的事情,使用标签代替
BorderStyle=Fixed3D
和AutoSize=False
就可以了。vlju58qv4#
我发现下面的解决方案是一个相当不错的妥协。它关闭控件的AutoSize属性并增大其内容的字体大小。到目前为止,它似乎对各种DPI上下文都很适用。
在此解决方案之后:
在此解决方案之前: