能不能使richtextbox 中的滚动条禁止滚动? 就是滚动条仍然显示但不动作?

解决方案 »

  1.   

    你需要继承richtextbox,然后在重载PreProcessMessage中判断当前事件是否为滚动类型,如果是的话,不进行向下触发。
      

  2.   

    reference:
    http://www.syncfusion.com/FAQ/WindowsForms/FAQ_c57c.aspx#q986q
      

  3.   

    不进行向下触发?
    不知道怎么做,
    http://www.syncfusion.com/FAQ/WindowsForms/FAQ_c57c.aspx#q986q
    看了不知道如何下手,高手给个代码框架吧?
      

  4.   

    http://www.codeproject.com/csharp/imessagefilterarticle.asp
    介绍了个Using IMessageFilter to create a generic filter for operating system events
    应该可以实现相同功能吧?
      

  5.   

    Sample code as follows:
    public class myRichTextBox:RichTextBox
    {
         protected override void WndProc( ref Message m )
         {
               const int WM_HSCROLL = 0x114;
               const int WM_VSCROLL = 0x115;
               switch (m.Msg)
                {
                    case WM_HSCROLL:
                    case WM_VSCROLL:
                        return;
                }
                base.WndProc(ref m);      }
    }//Then use "myRichTextBox" to replace "RichTextBox"
      

  6.   

    按照上面的做了,但是没有  WM_HSCROLL WM_VSCROLL 消息,
    WndProc能进去,就是没有该消息?
    我放在一个小例子中测的,没有其它代码影响,滚动条还是在上下翻滚的
      

  7.   

    消息有了,是在我拖动滚动条时才触发的,但是我在richtextbox中移动光标时没有触发,应该换成哪个消息响应????
      

  8.   

    我想我如果在richtextbox中移动光标时,如果键盘移动光标移出显示区域时,则滚动条不相应滚动,光标当然也不显示,但要保证滚动条鼠标能拖动,也能响应鼠标滚轮消息,并能显示原来没滚动时的内容.
    默认的滚动条总是上移或下移显示光标的,我不要这样.能不能达到?
      

  9.   

    那你还不如不用richtextbox自带的滚动条,然后再加一个自己的,这样控制要方便多了。
      

  10.   

    能不能帮我找一下,光标移出显示区域时,但焦点仍在richtextbox中,滚动条响应的上移或下移的消息?