代码之家  ›  专栏  ›  技术社区  ›  iLemming

如何防止光标在键入时“跳入”文本框

  •  2
  • iLemming  · 技术社区  · 14 年前

    如果你在文本框上有一个焦点,但是鼠标指针没有准确地停留在它上面,那么鼠标指针有默认的箭头形状或者你定义的任何形状。

    当您开始键入时,mousecurs或隐藏它自己,您只看到文本框中闪烁的stick IBeam type光标。

    问题:即使你开始打字,如何将鼠标指针保持在初始位置?

    4 回复  |  直到 14 年前
        1
  •  2
  •   iLemming    14 年前

     Cursor.Position = new Point( oldX, oldY ); 
    

    另一方面,这有点糟糕,谁在乎呢?Winform应用程序往往比WPF应用程序更难看,不是吗?

        2
  •  1
  •   JustBoo    14 年前

    我要回答这个问题。副作用和后果是你的责任。还有别的办法吗?我肯定。

    创建一个“state”变量来保存用户是否正在键入的状态。文本框有各种各样的事件让你知道当有人在打字,EN\u改变,等等,整个事件家族等等。用户键入时将状态变量设置为true。不打字时为假,不对焦等。

    通过预处理消息事件或预翻译消息事件或任何适当的事件捕获鼠标输入。

    当状态变量为true时,在OnPaint事件中调用“ShowCursor”或可能调用“SetCursor”。是啊,毛茸茸的,嗯。当状态变量为false时不要调用它。

    如果这是不清楚的帖子,我会扩大我的答案。

        3
  •  0
  •   Raj More    14 年前

    “键入时隐藏指针”

        4
  •  0
  •   Adam Lear    14 年前

    据我所知,没有办法。即使关闭了Windows的“键入时隐藏指针”设置,如果光标不仅位于文本框上,而且位于整个窗体上,光标也会消失。

    textbox控件或窗体的属性中似乎没有任何内容影响此行为。