我想更改C#中的文本框中的插入符號,使其看起來更像在舊的DOS應用程序中那樣。在C#中的文本框中更改插入符(光標)
我想:
using System.Runtime.InteropServices;
...
[DllImport("user32.dll")]
static extern bool CreateCaret(IntPtr hWnd, IntPtr hBitmap, int nWidth, int nHeight);
[DllImport("user32.dll")]
static extern bool ShowCaret(IntPtr hWnd);
...
public partial class Form1 : Form
{
[DllImport("user32.dll")]
static extern bool CreateCaret(IntPtr hWnd, IntPtr hBitmap, int nWidth, int nHeight);
[DllImport("user32.dll")]
static extern bool ShowCaret(IntPtr hWnd);
public Form1()
{
InitializeComponent();
}
private void Form1_Shown(object sender, EventArgs e)
{
CreateCaret(textBox1.Handle, IntPtr.Zero, 20, textBox1.Height);
ShowCaret(textBox1.Handle);
}
}
但它看起來一樣。你能幫忙的話,我會很高興。提前致謝!
編輯:
這只是一個例子。我的真實代碼如下所示:
TextBox textbox = new TextBox();
textbox.MaxLength = fieldLength;
textbox.Width = fieldLength*24;
textbox.MaxLength = maxChars;
this.Controls.Add(textbox);
CreateCaret(textbox.Handle, IntPtr.Zero, 20, textbox.Height);
ShowCaret(textbox.Handle);
該代碼被調用但不會更改任何內容。
EDIT2:
我試過的例子,它工作正常,但我的問題仍然exisits: 創建文本框時,我不能改變插入符。它只能用於使用表單創建的文本框。
如果有人正在閱讀:我的問題的答案是,我在表單完全加載之前調用方法。 –