我想要在C#的文本框中更改插入符号的样式,使其看起来更宽,就像旧的DOS应用程序中一样。
我有以下样式:
我想要的样式如下:
我尝试过:
但是它看起来还是一样的。任何帮助都将不胜感激。提前感谢!
编辑:
这只是一个例子。我的真实代码如下:
代码被调用了,但没有改变任何东西。
编辑2:
我尝试了这个例子,它可以正常工作,但我的问题仍然存在: 在创建文本框时无法更改插入符号的位置。只有在使用表单创建文本框时才可以更改。
我有以下样式:
![enter image description here](https://istack.dev59.com/AO2QR.webp)
![enter image description here](https://istack.dev59.com/iMzzn.webp)
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);
代码被调用了,但没有改变任何东西。
编辑2:
我尝试了这个例子,它可以正常工作,但我的问题仍然存在: 在创建文本框时无法更改插入符号的位置。只有在使用表单创建文本框时才可以更改。