【发布时间】:2013-11-28 05:49:46
【问题描述】:
我有一个以图形窗口作为子窗口的父窗体。 在父窗体中,面板左侧有按钮。 在父窗体的剩余区域中,将显示子窗口。我正在通过以下方式手动定位子窗口。
第一个窗口
第二个窗口
第三个窗口,垂直方式。因此,这也会在父窗体的右侧创建一个滚动条。
单击图形按钮后,将创建子窗口并将其放置在所有其他子窗口的底部。由于添加了一个新窗口,因此也需要刷新滚动条大小。仅当我将光标悬停在滚动条上时,条的垂直高度才会改变。 所以,我点击左侧的按钮,然后要更新滚动条,我需要将光标移动到右侧的滚动条上。
我尝试访问滚动条,但由于它是自动生成的,我无法找到刷新它或手动设置焦点的方法。
应该是这样的
我已经上传了一个视频来展示这个行为以及一个演示项目。 演示项目:http://www.filedropper.com/demoforscrollbar 屏幕分享视频:http://tinypic.com/r/ic0615/5
我是否可以在不移动光标或用户点击的情况下更新滚动条?
我尝试在打开或关闭子窗口后更改 MdiParentForm.VerticalScroll.Minimum 和 maximum,但没有帮助。我还尝试与 MdiParentForm.AdjustFormScrollbars 一起禁用和启用垂直滚动,但没有奏效。
我有 autoscroll = false,因为我无法以 mdicontainer 形式将其设为 true。 创建子窗口后,我在父窗体中写在下面。
this.VerticalScroll.Minimum = 0;
this.VerticalScroll.Maximum = this.MdiChildren[this.MdiChildren.Length -1].Location.Y + this.MdiChildren[this.MdiChildren.Length - 1].Height;
this.AdjustFormScrollbars(true);
this.PerformLayout();
【问题讨论】:
标签: c# .net winforms mdi mdiparent