我正在查看我朋友寄给我的程序,该程序是用Tcl / Tk编写的。它具有丰富格式的多行文本框,具有不同的颜色和字体,对于某些文本块,应用程序窗口会对悬停在不同文本元素上的用户做出反应。他说这是通过在创建新字体时指定“OnMouseEnter”回调事件来实现的。这似乎是一种很酷而优雅的方法,我想在我写的C#应用程序中做类似的事情。目前我可以想到的三种方法是:(a)计算从XY鼠标坐标到文本的映射(可能有一个简单的功能吗?)(b)使每个不同的文本块成为子控件它自己的回调函数(非常难看,需要我自己编写文本)或(c)使它成为一个网页控件,并通过WebBrowser.Navigating让javascript“调用”C#。关于实现此类功能的最佳方式的任何建议都将受到欢迎。
答案 0 :(得分:0)
大多数文本框控件都具有X-Y coord到文本块转换函数调用。您可以为文本框挂钩整个鼠标移动事件,并查看鼠标下方的内容。
这可能是丑陋的代码,但至少它会起作用。