我正在尝试编写一个像DarkRoom这样的简单文本编辑器,其中只包含一个RichTextBox(或者一个TextBox)。我的问题是我不能使用鼠标滚轮滚动,除非我有一个垂直滚动条。有没有办法隐藏这个滚动条,仍然可以用鼠标滚轮滚动?
到目前为止,我有几个想法可以做到这一点,但不知道如何实现它们。
P.S。:使用任何win32东西都不是一种选择。
答案 0 :(得分:2)
是的,您必须捕获.MouseWheel和.MouseMove事件。请参阅this post。
好的,做以下事情:
在表单加载事件中添加一行。
private void Form1_Load(object sender, EventArgs e)
{
this.richTextBox1.MouseWheel += new MouseEventHandler(richTextBox1_MouseWheel);
}
在鼠标滚轮事件中添加以下内容。
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: