0
我有一個小問題,我使用的WinForms,我有一個想法,我想改變光標顏色到文本框當用戶正在編輯它呢。這個想法是當用戶正在寫入時顯示一個顏色,顯示一個顏色不顯示一個cursor.cur,我可以如何將顏色光標更改爲texBox? 感謝您的回答。我該如何做到這一點,以便當用戶進入文本框,光標顏色變化C#
我有一個小問題,我使用的WinForms,我有一個想法,我想改變光標顏色到文本框當用戶正在編輯它呢。這個想法是當用戶正在寫入時顯示一個顏色,顯示一個顏色不顯示一個cursor.cur,我可以如何將顏色光標更改爲texBox? 感謝您的回答。我該如何做到這一點,以便當用戶進入文本框,光標顏色變化C#
改變光標從一個文本框,在的WinForms
添加類NativeMethod
public class NativeMethod {
[DllImport("user32.dll")]
public extern static int GetCaretBlinkTime();
[DllImport("user32.dll")]
public extern static int SetCaretBlinkTime(int wMSeconds);
[DllImport("user32.Dll")]
public extern static int GetCaretPos(ref POINT pt);
[DllImport("user32.dll")]
public extern static int SetCaretPos(int x, int y);
[DllImport("user32.Dll")]
public extern static int DestroyCaret();
[DllImport("user32.dll")]
public extern static int CreateCaret(IntPtr hwnd, IntPtr hBitmap, int nWidth, int nHeight);
[DllImport("user32.dll")]
public extern static int ShowCaret(IntPtr hwnd);
[DllImport("user32.dll")]
public extern static int HideCaret(IntPtr hwnd);
[StructLayout(LayoutKind.Sequential)]
public struct POINT
{
public int x;
public int y;
}
}
創建變量:
private System.Drawing.Bitmap bm; private IntPtr hBitmap;
添加點擊並從文本框的框TextChanged方法,其中定義光標將顯示,在這些方法必須添加下列行:
NativeMethod.CreateCaret(this.textBox1.Handle, hBitmap, 0, 0);
NativeMethod.ShowCaret(this.textBox1.Handle);
各方法將是如下:
private void textBox1_Click(object sender, EventArgs e)
{
NativeMethod.CreateCaret(this.textBox1.Handle, hBitmap, 0, 0);
NativeMethod.ShowCaret(this.textBox1.Handle);
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
NativeMethod.CreateCaret(this.textBox1.Handle, hBitmap, 0, 0);
NativeMethod.ShowCaret(this.textBox1.Handle);
}
在Form_Load事件中添加下一行。
bm = new Bitmap("puntero.png");
hBitmap = bm.GetHbitmap();
其中「puntero.png」是先前創建的圖像,其尺寸可以變化,但在本例中,我們使用尺寸PX圖像5×25紅色,這圖像是負的顏色。
如果您確實想要更改'caret'(垂直線顯示文本光標所在的位置),請查看http://stackoverflow.com/questions/609927/custom-caret-for-winforms-textbox – 2015-02-09 17:55:11
我解決了這個問題。 https://docs.google.com/document/d/1z1oZJjNPKFX_EyTCTxtKXkpSUctsGdhtrpUTJ8IrLM8/edit?usp=sharing – 2015-02-09 22:04:17
隨時回答你自己的問題。用自己的語言和代碼提供解決方案的大綱。 – 2015-02-09 22:48:46