【问题标题】:Dealing with user control readbility处理用户控件的可读性
【发布时间】:2014-05-08 12:34:26
【问题描述】:

我创建了一个自定义用户控件,用于跟踪时间条目。该控件由表格布局中的两个面板组成。第一个面板包含标签/名称/用户信息,第二个面板包含数据输入文本框。此控件在运行时添加到表单中的流布局面板中,出于调整大小的原因,该表单包含在表格布局面板中。由于分辨率和屏幕尺寸可能存在差异,我已将流布局面板的 autoscroll 属性设置为 true。当控件被切断时,我确实得到了滚动条,所以这可以按预期工作。

目前唯一的问题是可读性。例如:

如附图所示,用户名位于左上角。如果您需要向右滚动,您将无法在最左侧的面板中看到该名称。我希望能够在控件底部的一些空白处显示用户名。我想像这样的东西可以工作(样机):

或者我希望能够使最左侧的面板保持静态。现在流程布局面板正在处理自动滚动,我认为应该以不同的方式处理(意味着表单大小应该强制控件仅自动滚动第二个面板,并保持第一个面板完好无损,但这可能意味着只有单独控制可以滚动吗?)。我需要做什么才能实现这一目标?

【问题讨论】:

    标签: vb.net winforms


    【解决方案1】:

    您是否考虑过Splitcontainer 及其SplitterDistance/FixedPanel property 的用法

    MSDN - Link

    Another Usefull link

    这是一个很好的“教程”:

    Splitcontainer tutorial

    Fixedpanel 属性并未讨论。固定面板应设置为isn't supposed to change 的面板。在您的情况下,您将指向左侧的面板。

    【讨论】:

    • 我将控件更改为存在于 SplitContainer 中,并将 Panel1 设置为固定面板。我还在第二个面板上将自动滚动设置为 true。当我将控件添加到表单上的 FlowLayoutPanel 时,然后缩小表单宽度,panel2 没有任何滚动条。
    • 所以如果做对了,那么 Panel1 包含:'jhon Doe EID....' 而 Panel2 纯粹包含它的 'Hours'?
    • 这是正确的。然后,我将此控件添加到我的 winform,其中包含嵌套在表格布局面板中的流布局面板。当我将表单的右手柄的大小调整为小于控件的内容时,我希望 panel2 显示滚动条并保持 panel1 静态,或者一旦名称滚动出视图,我想在 panel1 中的某个空白区域显示名称.在调整右侧表单句柄的大小时,在流布局面板上启用自动滚动会滚动整个控件,而不仅仅是 panel2。
    • 这可能是在流程布局面板中使用一个控件的限制,而不是(例如)嵌套在流程布局面板中的表格布局,它在两列中使用两个控件?我想这样我应该能够使第二列自动滚动内容。但这比仅仅在流布局面板中添加控件要复杂
    • 很奇怪。通常滚动条会自动出现。您能否尝试以下操作:将 flowlayoutpanel 添加到 panel2。将控件添加到 panel2 内的 flowlayoutpanel(属性 Dock = Fill)?
    猜你喜欢
    • 2010-10-04
    • 2012-06-27
    • 2010-09-10
    • 2010-12-02
    • 1970-01-01
    • 1970-01-01
    • 2013-01-14
    • 2017-03-11
    • 2011-12-20
    相关资源
    最近更新 更多