【问题标题】:Vertical Scroll Bar on MDI Parent Does Not Scroll GraduallyMDI Parent 上的垂直滚动条不会逐渐滚动
【发布时间】:2012-10-02 21:21:30
【问题描述】:

我在VS2010下用C#写了一个MDI应用。

当我在垂直滚动条上拖动拇指时,窗口不会移动,直到拇指松开。

研究发现了一些东西,但到目前为止我发现的信息都没有奏效。

有人对这个问题有一些指导吗?我希望窗口在拖动拇指时滚动。

查克

【问题讨论】:

  • 试试看this answer
  • 我实现了文章中的解决方案。好消息是滚轮确实有效!这在我的名单上是一个低优先级,但仍然如此。但是,当我拖动拇指时,在我松开它之前,一切都不会移动。有进一步的指导吗?

标签: c# visual-studio-2010 mdi mdiparent


【解决方案1】:

“我希望窗口在拖动拇指时滚动,但窗口不会 移动直到松开拇指”

设置滚动条属性ScrollTrack = True

编辑:

在此处查看最后一个示例: http://www.pcreview.co.uk/forums/determine-scrolling-mdi-form-mdiclient-t1323005.html 它与detecting scrolls to repaint child forms to avoid flickering有关

请看看 Hans Passant 在这里做了什么:Issue Related to Scrollbar in MDI Form in C#

伪代码:

  protected override void WndProc(ref Message m)
        {
            try
            {

                switch (m.Msg)
                {
                    //Scolling progress and Completion will be triggered
                    case WM_HSCROLL:

                    case WM_VSCROLL:
                          //this doesn't work 
                          //this.VerticalScroll.Value = x;

                          //I haven't tested this but it should definately work:
                          //http://www.pinvoke.net/default.aspx/user32.setscrollpos

【讨论】:

  • Jeremy,因为我使用的是出现在 MDI 父级中的默认滚动条,而不是我自己添加的滚动条,我为了设置属性而引用的控件的名称是什么?
  • 杰里米,谢谢。你提供了很多很好的信息来消化和使用。我在四处挖掘时没有看到这些文章。我已经覆盖了 WndProc 并且知道我有文章中提到的相同问题,但没有生成滚动事件。再次感谢你的帮助。我很感激。
  • 关于 Hans Passant 的文章,LarsTech 已经向我指出了这一点。我实现了它。它使鼠标滚轮起作用,但对滚动问题没有帮助。令人惊讶的是,MDI 客户端在这方面的混乱程度。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多