防止文本框中的闪烁光标
在文本框中,如何在单击时阻止显示闪烁的光标?
我确实在一些论坛中读到了对特定api的调用,但当我在我的代码中尝试它时,显示错误。 如果可能,请提供完整的代码,如果有特定事件需要执行代码,请告诉我。
此文本框是创建用于模拟lan信使的表单窗口的一部分。 我正在使用C#。 该表单有两个文本框,以便类似于谷歌谈话。 希望防止在上部文本框上显示闪烁的光标。
我试过了:
[DllImport("user32")] private static extern bool HideCaret(IntPtr hWnd); public void HideCaret() { HideCaret(TextBox1.Handle); }
我收到错误:“无法找到DllImport。”
如果要禁止在文本框上进行编辑,请将其ReadOnly属性设置为true。
如果要允许编辑但仍隐藏插入符,请完全按照指定调用Win32 API:
[System.Runtime.InteropServices.DllImport("user32.dll")] static extern bool HideCaret(IntPtr hWnd); ... HideCaret(myTextBox.Handle);
嗨,试试这个代码
public class CustomTextBox:System.Windows.Forms.TextBox { [System.Runtime.InteropServices.DllImport("user32")] private static extern bool HideCaret(IntPtr hWnd); public CustomTextBox() { TabStop = false; MouseDown += new System.Windows.Forms.MouseEventHandler(CustomTextBox_MouseDown); } void CustomTextBox_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e) { HideCaret(this.Handle); } }
如果你把hideCaret函数放在Textchange事件中,这将解决问题。
[DllImport("user32.dll")] static extern bool HideCaret(IntPtr hWnd); private void textBox1_TextChanged(object sender, EventArgs e) { HideCaret(textBox1.Handle); }
我研究了如何在TextBox
上模拟Chrome的url (部分),并从这里和这里收集代码。
它工作正常,首先是Clic,选择所有文本而不显示闪烁的插入符号,诀窍是当你在所选文本上第二次Clic时使插入符号显示,这就是Chrome的Web地址栏的行为方式。 这是代码:
[DllImport("user32.dll")] static extern bool HideCaret(IntPtr hWnd); private void textBox2_Enter(object sender, EventArgs e) { // Kick off SelectAll asyncronously so that it occurs after Click BeginInvoke((Action)delegate { HideCaret(textBox2.Handle); textBox2.SelectAll(); }); }
将TextBox
上的ReadOnly
属性设置为true
。
这个问题的更多答案: C#中的只读文本框
VB.NET代码
上述就是C#学习教程:防止文本框中的闪烁光标分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
Imports System.Runtime.InteropServices Public Class xxxxxxxxxxxxxxxxxxxxxx Private Shared Function HideCaret(ByVal hwnd As IntPtr) As Boolean End Function ............... Private Sub txtNotePreview_MouseMove(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtNotePreview.MouseMove, txtNotePreview.KeyPress HideCaret(txtNotePreview.Handle) End Sub
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1008539.html