我的项目中有一个文本框,用户为我的应用程序输入一种简单类型的脚本语法。我想弄清楚是否有可能在文本框中单击某个单词,这样当我的用户点击它时会弹出一个openfiledialog然后用文件chosens路径替换这个单词。
我的第一个问题是搜索文本框并获取单词的xy坐标,然后在光标位于该单词上方时更改光标,单击文本框时会将其调出。虽然我认为这不会起作用,因为x / y值会改变,并且它不会帮助我替换正确的单词。
这个词可以在文本框中多次出现......如果有可能使用标准文本框,那么我将不胜感激任何关于如何实现这一点的指导。
答案 0 :(得分:0)
如果不为你编写整个课程,我可能会开始使用GetCharIndexFromPosition。使用此功能,您可以指定文本框的左上角和右下角,以查找文本框中第一个和最后一个可见字符的索引。
从那里你只需要解析那些边界之间感兴趣的关键字(应该很快,因为你只需搜索可见的字符)。然后我会指定一组Rect
s,这次使用绑定关键字的GetPositionFromCharIndex。您甚至可以使用GDI来绘制它们以进行调试。您可以在OnPaint
或其他适当的处理程序中完成所有这些操作(每当文本框的输出发生更改时)。
然后,在MouseMove
处理程序中,您只需要检查鼠标位置与边界Rect
以确定是否处于活动区域(设置光标图标等),并且意识到OnClick
中的那个状态可以做你想做的任何事情。
答案 1 :(得分:0)
如果您希望与代码隐藏进行交互,您可以轻松创建一个javascript链接,如果单击该链接会触发函数或带有命令参数的回发。