我需要知道插入符号当前所在窗口的确切点位置,以便我可以在文本下方弹出一个小窗口(类似于Intellisense或拼写检查器)。问题在于,GetPositionFromCharIndex 在 TextBoxes 上似乎不起作用。这就是我想做的:
Point pt = mTextBox.GetPositionFromCharIndex(mTextBox.SelectionStart);
pt.Y = (int)Math.Ceiling(mTextBox.Font.GetHeight());
mListBox.Location = pt;
然而,对于文本框(显然它没有像RichTextBox一样实现),GetPositionFromCharIndex始终返回(0, 0)。虽然这个函数(和这段代码)可以在RichTextBox中正常工作,但我不想除非万不得已,否则将我的代码从TextBox迁移到RichTextBox。RichTextBox/TextBox有太多的不兼容性,我必须重写很大一部分代码才能实现这个目标。
有没有Winforms专家知道如何做到这一点?