【问题标题】:Is it possible to make a word clickable in a textbox that can do something on click?是否可以在文本框中制作可点击的单词,点击后可以执行某些操作?
【发布时间】:2012-12-20 22:50:04
【问题描述】:

我的项目中有一个文本框,用户可以为我的应用程序输入一种简单类型的脚本语法。我试图弄清楚是否可以在文本框中使某个单词可点击,所以当我的用户单击它时,它会弹出一个 openfiledialog,然后用文件选择的路径替换该单词。

我的第一个方法是搜索文本框并获取单词的 xy 坐标,然后在光标位于该单词上方时更改光标,单击文本框时会显示它。虽然我不认为这会起作用,因为 x/y 值会改变,它不会帮助我替换正确的单词。

这个词可以在文本框中多次出现...如果可以使用标准文本框,那么任何关于我如何实现它的指导将不胜感激。

【问题讨论】:

  • Winforms 或 WPF 应用程序?

标签: .net vb.net visual-studio-2010 textbox


【解决方案1】:

如果不为您编写整个课程,我可能会从GetCharIndexFromPosition 开始。使用它,您可以指定文本框的左上角和右下角,以查找文本框中第一个和最后一个可见字符的索引。

从那里您只需解析出这些边界之间感兴趣的关键字(应该很快,因为您只需搜索可见字符)。然后我会指定一组Rects,这次使用绑定关键字的GetPositionFromCharIndex。您甚至可以使用 GDI 来绘制它们以进行调试。您可能可以在 OnPaint 或其他适当的处理程序中完成所有这些操作(只要文本框的输出发生更改)。

然后,在MouseMove 处理程序中,您只需根据边界Rects 检查鼠标位置,以识别是否处于活动区域(设置光标图标等),并了解该状态在OnClick 做任何你想做的事。

【讨论】:

    【解决方案2】:

    Refer to this link

    如果您希望与代码隐藏交互,您可以轻松创建一个 javascript 链接,单击该链接会触发函数或带有命令参数的回发。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-05
      • 1970-01-01
      • 2020-08-24
      • 1970-01-01
      • 1970-01-01
      • 2016-09-26
      相关资源
      最近更新 更多