簡體   English   中英

C#WinForm自動調整文本框大小

[英]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

有人可以幫我解決固定代碼嗎?

看一下重載stringFontSizeTextFormatFlags

對於Size類型的參數,使用文本框的ClientSize (或帶有文本框寬度的新Size )(並可能添加您的X_MainY_Main - 我不確定它們的用途)並且至少包括TextFormatFlags.WordBreak用於TextFormatFlags (並查看其他的,如果它們也可以用於你)。

...
Size size = TextRenderer.MeasureText(TextBox1.Text, TextBox2.Font, TextBox2.ClientSize, TextFormatFlags.WordBreak);
...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM