我希望这是一个简单的问题。我执行以下操作:
- 在VS2010中,我创建一个Windows窗体应用程序
- 从工具箱中,将 RichTextBox 控件拖到窗体中
- 将窗体和 RichTextBox 控件调整为足够大以显示小图片。
- 运行(开始调试)。
- 从 Web 浏览器复制小图像并粘贴到 richtextbox(使用 ctrl-v)。
- 选择富文本框中的图像。显示带有小框的调整大小框架。
现在,当我将光标放在一个小的调整大小框上时,光标会闪烁。我看到了调整大小箭头光标的一瞥,但大多数时候它显示的是工字形光标。它不会像将图片粘贴到写字板并将光标放置在其中一个小调整大小框上时那样稳定地显示箭头光标。在 RichTextBox 中调整图片大小的行为是否应该与在 WordPad 中的行为相同?如何停止光标闪烁?
有了这个hack您将能够在不闪烁的情况下调整图像大小,并且使用正确的Arrows Cursors
.
How
首先,您需要子类化RichTextBox
并重写该方法WndProc
,所以当RichTextBox
收到消息改变其Cursor
,我们将检查图像是否被选中 --- 好吧,我真的不知道是否是一个Image
,但它是一个Object
并不是Text
.
If the Image
被选中,我们重定向message
to DefWndProc
--- 这是默认窗口过程。
代码:
public class RichTextBoxEx : RichTextBox
{
private const int WM_SETCURSOR = 0x20;
protected override void WndProc(ref Message m)
{
if (m.Msg == WM_SETCURSOR)
{
if (SelectionType == RichTextBoxSelectionTypes.Object)
{
DefWndProc(ref m);
return;
}
}
base.WndProc(ref m);
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)