Den*_*nis 6 c# compact-framework .net-2.0 winforms
我有一个AutoScroll设置为的面板true.在其中,我以编程方式添加ComboBox控件.如果我添加足够的控件以超过面板的可视大小,则会出现一个滚动条(到目前为止一直很好).但是,如果我打开可视区域底部附近的一个组合框,则组合列表未正确显示,并且可滚动区域似乎已展开.这导致所有控件被"拉"到面板的新底部,顶部有一些新的空白区域.如果我继续点击面板底部的下拉菜单,可滚动区域将继续无限扩展.我将控件固定在左侧,右侧和顶部,因此我认为不会涉及锚定.是否有明显可能导致这种情况的事情?
更新:看起来问题在于将控件固定到右侧.如果我没有向右锚,那么我就不会有这种奇怪的行为.但是,如果没有右侧锚定,控制将被滚动条切断.
这是我构建的简化测试用例,显示了该问题:
public Form1()
{
InitializeComponent();
Panel panel = new Panel();
panel.Size = new Size(80, 200);
panel.AutoScroll = true;
for (int i = 0; i < 10; ++i)
{
ComboBox cb = new ComboBox();
cb.Anchor = AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Top;
cb.Items.Add("Option 1");
cb.Items.Add("Option 2");
cb.Items.Add("Option 3");
cb.Items.Add("Option 4");
cb.Location = new Point(0, i * 24);
panel.Controls.Add(cb);
}
Controls.Add(panel);
}
Run Code Online (Sandbox Code Playgroud)
如果您滚动面板底部并点击底部附近的组合框,您会发现奇怪的行为.
这似乎是您所使用的设备特有的问题。我根本无法重现这种行为。您是否尝试过设置Panel的Dock属性?影响滚动行为的其他属性(AutoScrollMargin、AutoScrollMinSize、AutoScrollPosition)怎么样?我还会调整面板的大小,并可能使用 System.Windows.Forms.Screen 类根据设备自动确定它。
| 归档时间: |
|
| 查看次数: |
1555 次 |
| 最近记录: |