1

我试图让 atextbox在保持固定的同时动态改变它的高度width。Cuttently 当text它太长并且太第二行时textbox不会resize

textbox添加所有文本后调整大小。

以下是我目前正在使用的。

txtwfSupportNotes[i].Multiline = true;
txtwfSupportNotes[i].Text += ds.Tables[0].Rows[i]["Notes"].ToString() 
+ "\r\n\r\n";
Size txtSize = TextRenderer.MeasureText(txtwfSupportNotes[i]
.Text, txtwfSupportNotes[i].Font);
txtwfSupportNotes[i].Width = 355;
txtwfSupportNotes[i].Height = txtSize.Height+5;
txtwfSupportNotes[i].BorderStyle = BorderStyle.FixedSingle;

编辑:有一个修复,见下文。

Size txtSize = TextRenderer.MeasureText(txtwfSupportNotes[i].Text, txtwfSupportNotes[i].Font, txtwfSupportNotes[i].ClientRectangle.Size, TextFormatFlags.WordBreak);
txtwfSupportNotes[i].Height = txtSize.Height+5;
4

4 回答 4

0

我假设这是一个 wpf 或 winforms 应用程序,如果是这种情况,请不要设置高度,(但使用换行)然后你的文本框应该动态调整大小。

于 2013-06-19T09:13:42.697 回答
0

为什么不使用 TextBox 的 FontChanged 事件?像这样做:

private void txtwfSupportNotes_FontChanged(object sender, EventArgs e)
    {
        Size txtSize = TextRenderer.MeasureText(txtwfSupportNotes.Text, txtwfSupportNotes.Font);
        txtwfSupportNotes.Height = txtSize.Height + 5;
    }
于 2013-06-19T09:15:03.187 回答
0

如果您使用 MinHeight 属性,我认为它应该动态调整您的文本框:

txtwfSupportNotes[i].MinHeight = txtSize.Height+5;
于 2013-06-19T09:15:22.400 回答
0

检查设计器中文本框控件上的“锁定”属性 = false?

于 2013-06-19T09:18:53.877 回答