[英]C# WinForm Auto resize textbox
我正在使用WinForms,我正在嘗試將文本從一個textbox1傳遞到另一個textbox2。 關鍵是,textbox2必須根據textbox1的內容自動調整大小。 我設法完成了一個例外。 當你在textbox1中創建新行時,就可以了。 但是,當您使用空格但不創建新行時,它不會正確調整我的textbox2的大小。 它調整大小但不完全是出於某種原因。
這是我試圖做的。
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
有人可以幫我解決固定代碼嗎?
看一下重載string
, Font
, Size
和TextFormatFlags
。
對於Size
類型的參數,使用文本框的ClientSize
(或帶有文本框寬度的新Size
)(並可能添加您的X_Main
和Y_Main
- 我不確定它們的用途)並且至少包括TextFormatFlags.WordBreak
用於TextFormatFlags
(並查看其他的,如果它們也可以用於你)。
...
Size size = TextRenderer.MeasureText(TextBox1.Text, TextBox2.Font, TextBox2.ClientSize, TextFormatFlags.WordBreak);
...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.