Q
文本框填充
18
A
回答
33
正如您最有可能發現的,WinForms Textboxes沒有填充屬性。由於面板做暴露出Padding屬性,一個技術將是:
- 創建面板
- 設置它的邊框搭配一個文本框(例如,Fixed3D)
- 設置它的背景色,以匹配一個文本框(例如,白色或窗口)
- 設置其填充到您滿意爲止(例如,10,3,10,3)
- 添加一個文本框面板
- 文本框的邊框設置爲none內
- 使用Textbox的Dock和Anchor屬性獲得期望的效果
這應該讓你開始。您也可以創建一個自定義控件,它可以執行與上述相同的操作。
如果您在asp.net談論文本框,只需使用CSS:
input[type="text"] {padding: 3px 10px}
6
那麼,你可以TrimLeft,然後連接5個空格。或者,您可以設置一個帶有無邊界TextBox的自定義UserControl作爲實際的入口元素,覆蓋另一個沒有Tabstop的TextBox,並在聚焦時將焦點移至無邊界的TextBox。
3
這個問題已經推薦的應答了。無論如何,我想提出替代答案。要將填充添加到c#中的文本框中,可以使用「padLeft」方法。希望對某人有幫助。
textBox1.Text = "Hello";
textBox1.Text = textBox1.Text.PadLeft(textBox1.Text.Length + 5);
or
textBox1.Text = textBox1.Text.PadLeft(textBox1.Text.Length + 5, '*');
4
好的,這裏是一個合適的解決方案。首先將您的TextBox控件的Multiline
設置爲true
。
所需使用的語句:
using System.Drawing;
using System.Runtime.InteropServices;
using System.Windows.Forms;
代碼:
private const int EM_SETRECT = 0xB3;
[DllImport(@"User32.dll", EntryPoint = @"SendMessage", CharSet = CharSet.Auto)]
private static extern int SendMessageRefRect(IntPtr hWnd, uint msg, int wParam, ref RECT rect);
[StructLayout(LayoutKind.Sequential)]
private struct RECT
{
public readonly int Left;
public readonly int Top;
public readonly int Right;
public readonly int Bottom;
private RECT(int left, int top, int right, int bottom)
{
Left = left;
Top = top;
Right = right;
Bottom = bottom;
}
public RECT(Rectangle r) : this(r.Left, r.Top, r.Right, r.Bottom)
{
}
}
public void SetPadding(TextBox textBox, Padding padding)
{
var rect = new Rectangle(padding.Left, padding.Top, textBox.ClientSize.Width - padding.Left - padding.Right, textBox.ClientSize.Height - padding.Top - padding.Bottom);
RECT rc = new RECT(rect);
SendMessageRefRect(Handle, EM_SETRECT, 0, ref rc);
}
現在叫,像這樣:
SetPadding(myTextBox, new Padding(5, 5, 5, 5));
當然,最好是自動創建自己的TextBox控件從而可以將Multiline
設置爲true,並停止文本中不需要的換行符等。
0
我知道這有點舊了。但這是一個解決方案。對於初始文本,在開始處添加一個空格。然後,您可以覆蓋OnKeyPress
事件並添加以下代碼,以便您不能退格。
protected override void OnKeyPress (KeyPressEventArgs e) {
base.OnKeyPress (e);
if (e.KeyChar == (char)Keys.Back && Text.Length == 1) e.Handled = true;
else e.Handled = true;
}
您可以用需要填充的空格數替換1。
相關問題
- 1. 用jQuery填充文本框
- 2. 填充ASP文本框
- 3. 填充文本框與
- 4. 自動填充文本框
- 5. 與XmlNode.Attributes填充文本框
- 6. 自動填充文本框
- 7. 填充文本框場
- 8. 預填充dynaform文本框
- 9. 當其他文本框被填充時填寫文本框
- 10. 從DropDownList填充文本框選擇用CascadingDropDown填充本身
- 11. JQuery AJAX - 填充文本框和dropbown框
- 12. 使用組合框填充文本框
- 13. 從文本框填充列表框
- 14. 訪問組合框填充文本框
- 15. 根據另一個文本框文本填充文本框
- 16. 從XML文件填充文本框
- 17. 從文件填充文本框
- 18. 從文本文件填充選擇框
- 19. 填充組合框與文本文件
- 20. MS Access填充文本框和Combox
- 21. 使用URL填充文本框ASP.Net
- 22. 在文本框焦點上填充smartautocomplete
- 23. 從MYSQL查詢填充文本框
- 24. Sharekit不填充Facebook文本框
- 25. 在vb中自動填充文本框
- 26. WPF UI自動填充文本框
- 27. C# - 從WPF DataGrid填充文本框
- 28. 選擇框填充文本區
- 29. 從列表中填充文本框
- 30. 自動填充第三方文本框
winforms,webforms,wpf ..? –
簡單的簡·視覺工作室。我的錯。 – dab
這並沒有回答這個問題。這是一個Windows Forms項目,WPF項目(Windows Forms的新替代品)還是一個ASP.Net網站?所有這些都可以通過Visual Studio添加文本框,但它們的工作方式各不相同。 –