如果您关注文本框但鼠标光标没有完全悬停在文本框上,则鼠标光标具有默认箭头形状或您定义的任何内容。
当你开始输入时,mousecursor会隐藏自己,你只能看到文本框中闪烁的IBeam类型光标。
问题:即使你开始输入,如何将mousecursor保持在初始位置?
有趣的是:在WPF应用程序中不会发生这种情况。
答案 0 :(得分:2)
伙计们...这太荒谬了。在TextBox.KeyDown中,我必须每次都移动光标以指向它之前的位置..
Cursor.Position = new Point( oldX, oldY );
这里唯一的丑陋 - 如果它是一个动画光标,动画每次都会重新开始。而且您也无法同时键入和移动鼠标。那 有点儿太糟糕了,另一方面谁在乎呢? Winform应用程序往往比WPF应用程序更丑陋,是不是真的?
答案 1 :(得分:1)
我要回答这个问题。副作用和影响是你的责任。还有另一种方法吗?我确定。
创建“状态”变量以保存用户是否正在键入的状态。文本框中有各种事件可以让您知道有人在打字,EN_CHANGE等等,整个事件系列等等。用户键入时将状态变量设置为true。不输入时为假,EN_LOSTFOCUS等
通过PreProcessMessage事件或PreTranslateMessage事件或任何看似合适的事件来捕获鼠标输入。
当状态变量为true时,在OnPaint事件中调用“ShowCursor”或可能的“SetCursor”。是的,毛茸茸的,呃。在状态变量为false时不要调用它。
此后调试,调试,调试。 HTH
如果发布不明确,我会扩大答案。
答案 2 :(得分:0)
这是Windows设置。
在“控制面板”下,转到“鼠标”,然后您会看到类似于“在键入时隐藏指针”的设置
答案 3 :(得分:0)
据我所知,没有办法做到这一点。即使在关闭Windows“键入时隐藏指针”设置后,如果光标不仅位于文本框上,而且位于整个表单上,光标也会消失。
文本框控件或影响此行为的表单的属性中似乎没有任何内容。