【问题标题】:WinForms TreeView Display positioningWinForms TreeView 显示定位
【发布时间】:2016-01-27 21:24:00
【问题描述】:

我在自定义控件上有一个 TreeView (System.Windows.Forms.TreeView) 控件(类似于 Visual Studio 2013 中的输出窗口)。该控件放置在主窗体的底部(如 Visual Studio IDE)。当我用数据填充这个 TreeView 控件时,它会正确填充,但是,如果包含控件靠近底部,则显示的“弹出窗口”会被切断。如果我扩展下部控件以获得更多空间,则控件将显示所有数据。显示器“停靠”到它的设计位置。我尝试在显示屏上放置一个滚动条(有效),但这不是所需/要求的行为。

我想要做的是让显示器“上升”,如有必要,例如在 Visual Studio 2013 的输出窗口上显示“显示输出:”,或者只是让显示为 FreeFloating。

任何建议将不胜感激。

提前致谢。

皮特。

【问题讨论】:

    标签: winforms treeview


    【解决方案1】:

    已解决: - 创建 3 个新变量 ... originalParent、originalLocation 和 firstTime。 - 在 Resize 方法中(从 mouseOver 事件调用),其中设置了显示的大小,如果这是第一次,请保存上面的内容并将父级设置为 TopLevelControl - 确定表单上的新位置 ... originalParent.FindForm().PointToClient(originalParent.PointToScreen(originalLocation)。 - 查看显示的输出是否会超出顶部表单的末尾... TopLevelControl.DisplayRectangle.Height - (locationOnForm.Y + oTreeView.DisplayRectangle.Height) - 如果差值小于 0,则根据差值调整新位置。Y。 - 将显示输出位置设置为新位置

    马上...

    • 另外,添加了一种方法,以便在调整主窗体大小或重新定位包含控件时,使用上述信息设置位置 - 只是不针对显示输出高度进行调整。
    • 在 mouseLeave 事件中添加对重置的调用

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-17
      • 2010-10-22
      • 1970-01-01
      相关资源
      最近更新 更多