隐藏RichTextBox滚动条而不会丢失鼠标滚轮滚动

丹尼尔·欧根(Daniel Eugen)

我想隐藏其RichTextBox垂直和水平滚动条,而又不失去使用鼠标滚轮滚动的能力...我在这里和那里进行搜索,但没有找到解决此类问题的有效方法?

到目前为止我尝试过的

protected override CreateParams CreateParams
{
    get
    {
        CreateParams cp = base.CreateParams;
        cp.Style = cp.Style & ~0x200000; //Hides the scrollbars but doesn't allow mouse wheel scrolling...
        return cp;
    }
}
可汗

这里的VB.Net解决方案RichTextBox VScrollbar

您可以如下创建自定义控件

using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Diagnostics;
using System.Runtime.InteropServices;
using System.Windows.Forms;
public class RichTextBoxX : RichTextBox
{

    //// see http://social.msdn.microsoft.com/Forums/vstudio/en-US/ba339154-95b7-4e13-a2c0-32593cadb984/richtextbox-vscrollbar?forum=vbgeneral
    [DllImport("user32.dll")]
    private static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam);
    private uint WM_VSCROLL = 0x115;
    private const uint SB_LINEUP = 0;
    private const uint SB_LINEDOWN = 1;
    private const uint SB_PAGEUP = 2;
    private const uint SB_PAGEDOWN = 3;
    private const uint SB_TOP = 6;
    private const uint SB_BOTTOM = 7;

    private const uint SB_ENDSCROLL = 8;
    public RichTextBoxX()
    {
        this.ScrollBars = RichTextBoxScrollBars.None;
        this.MouseWheel += Me_MouseWheel;
    }


    private void Me_MouseWheel(object sender, MouseEventArgs e)
    {
        try
        {
            if (e.Delta < 0)
            {
                // Scrolls down
                SendMessage(this.Handle, WM_VSCROLL, (IntPtr)SB_LINEDOWN, IntPtr.Zero);
            }
            else
            {
                // Scrolls up
                SendMessage(this.Handle, WM_VSCROLL, (IntPtr)SB_LINEUP, IntPtr.Zero);
            }
        }
        catch
        {
        }
    }
}

或没有创建自定义控件,

    [DllImport("user32.dll")]
    private static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam);
    uint WM_VSCROLL = 0x115;
    private const uint SB_LINEUP = 0;
    private const uint SB_LINEDOWN = 1;
    private const uint SB_PAGEUP = 2;
    private const uint SB_PAGEDOWN = 3;
    private const uint SB_TOP = 6;
    private const uint SB_BOTTOM = 7;
    private const uint SB_ENDSCROLL = 8;


    void richTextBox1_MouseWheel(object sender, MouseEventArgs e)
    {
        if (e.Delta < 0)
        {
            SendMessage(richTextBox1.Handle, WM_VSCROLL, (IntPtr)SB_LINEDOWN, IntPtr.Zero);// Scrolls down
        }
        else
        {
            SendMessage(richTextBox1.Handle, WM_VSCROLL, (IntPtr)SB_LINEUP, IntPtr.Zero);// Scrolls up
        }
    }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

区分鼠标滚轮滚动还是滚动条滚动?

来自分类Dev

jQuery UI Slider滚动条中的鼠标滚轮控件

来自分类Dev

tkinter 中的鼠标滚轮 + 滚动条问题

来自分类Dev

Chrome(Windows)不会隐藏滚动条

来自分类Dev

如何将鼠标滚轮滚动添加到垂直滚动条或滚动区域?

来自分类Dev

水平滚动条丢失

来自分类Dev

隐藏RecyclerView滚动条

来自分类Dev

隐藏DIV的滚动条

来自分类Dev

滚动条未隐藏

来自分类Dev

滚动条部分隐藏

来自分类Dev

滚动条未隐藏

来自分类Dev

隐藏控制台中的滚动条而不会闪烁

来自分类Dev

滚动条在调整大小时不会隐藏。

来自分类Dev

导航栏不会隐藏在滚动条上

来自分类Dev

允许滚动但隐藏滚动条

来自分类Dev

隐藏滚动条(启用滚动)

来自分类Dev

需要在带有滚动条的 ttk 笔记本中安装鼠标滚轮

来自分类Dev

表单滚动但滚动条不会移动

来自分类Dev

表单滚动但滚动条不会移动

来自分类Dev

主体溢出:隐藏禁用鼠标滚轮滚动

来自分类Dev

鼠标滚轮水平滚动

来自分类Dev

隐藏滚动条Android KitKat 4.4

来自分类Dev

隐藏滚动条iFrame子网站

来自分类Dev

Sublime Text 3隐藏滚动条

来自分类Dev

滚动条隐藏了HTML页脚

来自分类Dev

如何隐藏UICollectionView的滚动条

来自分类Dev

如何隐藏水平滚动条

来自分类Dev

隐藏滚动条而不是内容

来自分类Dev

删除隐藏了溢出的滚动条