2013-01-22 78 views
2

我正在使用C#編寫一個.net程序。我想問我怎麼讓用戶調整文本框的大小 ,以便他可以放大或縮小文本框Textbox屬性

+0

Winform,WPF或Web? –

+0

我的應用程序是Web。 – user1386463

+0

由於本網站非常活躍,因此您可以監控您的問題...在ASP.Net中執行此操作非常簡單,我會給您一個提示(此評論文本框可調整大小)並讓您解決問題。 –

回答

0

沒有允許您手動調整它們的文本框的本機屬性。你可以做的是設置dockanchor屬性,以便當用戶調整窗體大小時,它將調整文本框的大小。

4

這在Winforms中很容易做到,它只需要幾行代碼。 Windows中的每個窗口都有天生的能力,可以被用戶所認可。這通常只對頂層窗口(窗體)完成,但對於任何客戶端窗口來說,它都可以工作。

關鍵是要響應WM_NCHITTEST消息。當你點擊它時,Windows會向窗口發送一條消息。它基本上問「什麼被擊中?」你可以簡單地說「這個角落已經被擊中」,然後Windows從那裏開始。它會更改光標以指示可以拖動角。並在用戶移動鼠標時自動調整窗口的大小。

向您的項目中添加一個新類並粘貼下面顯示的代碼。編譯。將新的控件從工具箱的頂部拖放到窗體上,並將其Multiline屬性設置爲true。按F5並拖動文本框的右下角以查看它的工作情況。

using System; 
using System.Drawing; 
using System.Windows.Forms; 

class SizeableTextBox : TextBox { 
    protected override void WndProc(ref Message m) { 
     base.WndProc(ref m); 
     // Intercept WM_NCHITTEST 
     if (m.Msg == 0x84 && this.Multiline) { 
      // Find out where the cursor is located 
      var pos = PointToClient(new Point(m.LParam.ToInt32())); 
      // Return HTBOTTOMRIGHT if in the lower-right corner 
      if (pos.X >= this.Width - 12 && pos.Y >= this.Height - 12) m.Result = (IntPtr)17; 
     } 
    } 
} 
相關問題