首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C# WinForm自动调整大小文本框

C# WinForm自动调整大小文本框
EN

Stack Overflow用户
提问于 2019-04-08 00:40:30
回答 1查看 78关注 0票数 0

我正在使用WinForms,并且尝试将文本从一个textbox1传递到另一个textbox2。关键是,textbox2必须根据textbox1的内容自动调整大小。我设法完成了这件事,但有一个例外。当您在textbox1中创建新行时,它会这样做。但是当你在写空格而不是创建新行时,它不会正确地调整我的textbox2的大小。它调整了它的大小,但由于某种原因并没有完全调整大小。

这就是我一直在尝试做的。

代码语言:javascript
运行
复制
    private void PassTextFunction()
    {
        const int X_Main = 95;
        const int Y_Main = 60;
        Size size = TextRenderer.MeasureText(TextBox1.Text, TextBox1.Font);
        TextBox2.Text.ClientSize = new Size(size.Width + X_Main, size.Height + Y_Main);
        int nInterval = 10;
        string res = String.Concat(TextBox2.Text.Select((c, i) => i > 0 && (i % nInterval) == 0 ? c.ToString() + Environment.NewLine : c.ToString()));
        TextBox2.Text = TextBox1.Text.ToString();
    }

所以当我做线条的时候,一切都调整得很好。下面是示例:https://imgur.com/zxd5aCd

但是当我不写下一行,只是简单地输入,其余的文本被隐藏在下面,由于某种原因,textbox2不能完全调整大小。下面是示例:https://imgur.com/ftbiP55

有没有人可以帮我修复代码?

EN

回答 1

Stack Overflow用户

发布于 2019-04-08 04:17:58

看看the overload taking string, Font, Size and TextFormatFlags吧。

对于Size类型的参数,使用textbox的ClientSize (或者使用textbox宽度的新Size )(可能还要添加您的X_MainY_Main --我不确定它们的用途),并且至少为TextFormatFlags包含TextFormatFlags.WordBreak (如果其他一些对您也有用的话)。

代码语言:javascript
运行
复制
...
Size size = TextRenderer.MeasureText(TextBox1.Text, TextBox2.Font, TextBox2.ClientSize, TextFormatFlags.WordBreak);
...
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55561338

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档