问题  TreeView显示定位

PBTurner.

新成员
加入
2016年1月28日
消息
2
编程经验
10+
我在自定义控件上拥有TreeView(System.Windows.Forms.TreeView)控件(类似于Visual Studio 2013中的输出窗口)。该控件放置在主形式的底部(如Visual Studio IDE)。当我使用数据填充此TreeView控件时,它会正确填充,但如果包含的控件靠近底部,则显示"popup"被切断了。如果我展开较低的控件以有更多的空间,则控制器显示所有数据。显示器是"docked"到它的设计。我尝试将滚动条放在显示屏上(工作),但这不是所需/请求的行为。

我想做的就是有展示"go up"如有必要,如此"Show output from:"在Visual Studio 2013中的输出窗口上显示,或者只需将显示器自由流动。

任何建议将不胜感激。

提前致谢。

皮特。
 

PBTurner.

新成员
加入
2016年1月28日
消息
2
编程经验
10+
更新

我在自定义控件上拥有TreeView(System.Windows.Forms.TreeView)控件(类似于Visual Studio 2013中的输出窗口)。该控件放置在主形式的底部(如Visual Studio IDE)。当我使用数据填充此TreeView控件时,它会正确填充,但如果包含的控件靠近底部,则显示"popup"被切断了。如果我展开较低的控件以有更多的空间,则控制器显示所有数据。显示器是"docked"到它的设计。我尝试将滚动条放在显示屏上(工作),但这不是所需/请求的行为。

我想做的就是有展示"go up"如有必要,如此"Show output from:"在Visual Studio 2013中的输出窗口上显示,或者只需将显示器自由流动。

任何建议将不胜感激。

提前致谢。

皮特。

解决:
- 创建3个新变量...... OrteledParent,Originallocation和第一次。
- 在调整大小方法(从鼠标over事件调用)中,如果设置显示的大小,如果这是第一次,请保存上述并将父级设置为toplevelcontrol
- 确定表单上的新位置... oritalparent.findform()。PointToclient(OricaldParent.PointToScreen(OriginalLocation)。
- 查看显示的输出是否超出顶部表单的末尾... TopleVelControl.DisplayRectangle.Height - (locationonform.y + otreeview.displayrectangle.height)
- 如果差异小于0,则通过差异调整新位置。
- 将显示输出位置设置为新位置

presto ......

- 还,添加了一种方法,使得当主表单被调整大小时,或重新定位包含控制,使用上面的信息设置位置 - 只是不调整显示输出高度。
- 在MousEleave事件中添加调用重置
 
最佳 底部