none
请教下怎么在winform做出类似输入法的效果。 RRS feed

  • 问题

  • C#,Winform

    需求:

    类似输入法那种弹出框,选择内容,将内容添加到当前光标的位置。

    具体:

    在程序的任意一个可输入的地方,按下特定字符(例如“VJM”),就弹出一个层,层内包含数据列表。

    输入其他字符时根据字符动态改变层内的数据。可以上下键、鼠标等进行选择,选择后将选择的内容添加到当前光标的位置。

    光标要一直保持在第一次按下VJM的地方。

    现在用程序监听键盘消息,但是在处理的时候出现了一些问题:

    1:怎么判断 是否连续按下了VJM?(单独判断一个字符已经实现了)

    2:弹出的数据层用 control还是form呢?哪种比较适合这种悬浮框的场景?

    请问上面两个问题怎么处理比较合适?

    已经实现了监听单个按键;弹出层现在试了两种,一种实例化一个列表控件定位在输入框的下方,另一种是弹出一个form,但是这两种效果都有各种问题。所以来请教下大神们,万分感谢!

    2017年5月23日 10:13

答案

  • windows有专门的输入法接口,按照它的接口规范编写的程序可以实现你的需求。

    winform中只能模拟实现你的需求,不能完全实现。


    专注于.NET ERP/CRM开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms

    • 已标记为答案 傻子Lynn 2017年5月25日 2:36
    2017年5月24日 0:49