C# 在RichTextBox中滚动鼠标时滚动的是父窗口的滚动条

1. RichTextBox u2 = new RichTextBox();

2. 先记住日RichTextBox没有显示滚动条时的总宽度和显示宽度

  u2.Width - u2.ClientSize.Width。

3. 当显示垂直滚动条时,显示宽度会变化。

  当RichTextBox没有显示垂直滚动条时,在RichTextBox中滚动鼠标时,滚动的是父窗口的滚动条。

  private void U2_MouseWheel(object sender, MouseEventArgs e)
        {
            int size = u2.Width - u2.ClientSize.Width;
            Console.WriteLine(panel1.VerticalScroll.Value);
            if (size <= _size)
            {
                int delta = 120;
                int value = 0;
                if (e.Delta > 0)
                {
                    value= Math.Max(panel1.VerticalScroll.Minimum, panel1.VerticalScroll.Value - delta);
                }
                else
                {
                    value = Math.Min(panel1.VerticalScroll.Maximum, panel1.VerticalScroll.Value + delta);
                }
                panel1.VerticalScroll.Value = value;
                panel1.VerticalScroll.Value = value;
            }
        }

这里贴出主要代码,demo下载路径:

http://download.csdn.net/detail/nkhuangyanping/9846939

时间: 2024-10-07 03:22:05

C# 在RichTextBox中滚动鼠标时滚动的是父窗口的滚动条的相关文章

从jpanel中调出一个JDialog,并且使得父窗口jpanel的控件不能用

这个问题不好描述,就我的目的吧. 我要一个窗体调出另一个窗体.不过,父窗体只能是jpanel,而不是jframe,这是由我的问题决定的.并且使父窗体不可写. 当然,如果是jframe,这久简单了. 调出可编写的窗口,即子窗口为jdialog,但其构造方法中父窗体只能是jframe或者window, 不过,用这个,就可以使用了: SwingUtilities.getWindowAncestor(this): 不过,jframe模式不知该怎么搞,看哪位大牛能教我. 不过另一方面,虽然成功调出jdia

iframe中的jquery ui modal dialog 覆盖父窗口参考

function openDialog(){ var $doc; if(window.location!=window.parent.location){ // <SPAN style="COLOR: #ff0000">页面在iframe中</SPAN> $doc=window.parent.jQuery.noConflict(); }else{ // <SPAN style="COLOR: #ff0000">页面单独打开<

模拟在table中移动鼠标,高亮显示鼠标所在行

在项目中有这样一个需求,在table中移动鼠标时,鼠标所在行高亮显示,其他行正常显示,为此做了一个模拟. 具体代码如下: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <

JavaScript特效实例008-关闭弹出的窗口时,刷新父窗口

实例008                  关闭弹出的窗口时,刷新父窗口 实例说明 关闭弹出的窗口时,同时刷新父窗口,一般用来使父窗口获取最新的数据. 技术要点 本实例主要应用window.open()语句打开新窗口,并在新窗口中应用opener属性,该属性返回一个引用,用于指定打开本窗口的窗口对象. 语法: window.opener window.opener.方法 window.opener.属性 功能:返回的是一个窗口对象.opener属性与打开该窗口的父窗口相联系,当访问子窗口中op

WPF解决当ScrollViewer中嵌套ItemsControl时,不能使用鼠标来滚动翻页

1. ScrollViewer:滚动条容器,当内容超过指定的长度和宽度后,就会出现滚动条,而且可以使用鼠标中键来滚动, 简单例子如下: 1 <Window x:Class="ConnectScrollViewScrollingDemo.MainWindow" 2 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 3 xmlns:x="http://schemas.mic

非激活窗口中响应鼠标滚动之理论篇

在最近工作中有一个优化交互的需求,分析后得知,其核心功能为能在非激活窗口中响应鼠标滚动消息,先就该需求进行前期方案验证. 同类产品实现 参照现有软件行为,操作系统为Win7.以notepad++,Chrome两款软件为例. 当鼠标选中notepad++后,然后将鼠标转移到Chrome界面后,上下滚动鼠标,Chrome页面能够同步滚动. 当鼠标选中Chrome后,然后将鼠标转移到Notepad++界面,上下滚动,Notepad++不能同步滚动. 猜测是Chrome对滚轮滚动消息进行了额外处理.既然

纵向文字滚动代码,带上下图片控制的。鼠标放到上下图片上时滚动

<style type="text/css"> #swsh .swsh_body{height:352px;overflow:hidden;}</style></p> <div id="swsh"> <script language="javascript"> var UDMoveflag=true function scrollStart(object,offset){ object.

如何让DbGrid支持鼠标滚轮滚动

如何让DbGrid支持鼠标滚轮滚动 在主窗体上加一个ApplicationEvents控件(控件在Additional面板中), 在它的OnMessage事件中加入下述代码,一切搞定-! procedure TFrm_main_usermanager.ApplicationEvents1Message(var Msg: tagMSG; var Handled: Boolean); var hWnd: THandle; aName: array [0..255] of char; begin //

如何在滚动报表时保持标题可见 (Reporting Services)

From: https://msdn.microsoft.com/zh-cn/library/bb934257.aspx 对于跨多页的表或矩阵数据区域,可以控制滚动报表时是否始终显示包含列标题的初始行或包含行标题的初始列.进行控制以始终显示标题的方式也称为冻结标题,具体取决于要冻结的行或列的类型. 冻结包含列标题的第一行或前几行: 对于具有列组的矩阵,显示列名称的行是由列组控制的.设置“列标题”的 tablix 属性. 对于表,包含列名称的行是由行组中的 tablix 成员控制的.在“属性”窗格