隐藏RichTextBox的滚动条

我正在尝试编写一个像DarkRoom这样的简单文本编辑器,其中只包含一个RichTextBox(或者一个TextBox)。 我的问题是我不能使用鼠标滚轮滚动,除非我有一个垂直滚动条。 有没有办法隐藏这个滚动条,仍然能够用鼠标滚轮滚动?

到目前为止,我有几个想法如何做到这一点,但不知道如何实现它们。

  • 使用MouseWheel事件重新创建滚动代码
  • 更改滚动条的视觉样式以隐藏它或使其不太明显
  • 编写我自己的TextBox小部件
  • 将滚动条与其他内容重叠以隐藏它们

PS:使用任何win32的东西都不是一个选择。

是的,您必须捕获.MouseWheel和.MouseMove事件。 看这篇文章 。

好的,做以下事情:

  1. 在表单加载事件中添加一行。

    private void Form1_Load(object sender, EventArgs e) { this.richTextBox1.MouseWheel += new MouseEventHandler(richTextBox1_MouseWheel); } 
  2. 在鼠标滚轮事件中添加以下内容

     void richTextBox1_MouseWheel(object sender, MouseEventArgs e) { if (e.Delta > 0) { //Handle mouse move upwards if (richTextBox1.SelectionStart > 10) { richTextBox1.SelectionStart -= 10; richTextBox1.ScrollToCaret(); } } else { //Mouse move downwards. richTextBox1.SelectionStart += 10; richTextBox1.ScrollToCaret(); } } 

在任何一种情况下,让我知道,如果你想要相同的运行样本; 或者如果你不喜欢这个解决方案(0: