我是winforms的新手,我有自己无法解决的问题。
我想动态地从图片中添加按钮到“右下方面板”。问题是,如果我需要添加大量按钮,那么来自所提到面板底部的按钮将覆盖在图片后面板的控件(面板)上。这个案例显示我首先将“右下方面板”添加到“右侧面板”然后“右上方面板”。
如果我反过来,首先将“右下方面板”添加到“右侧面板”,然后将“右上方面板”添加到“右侧面板”,然后“右上方面板”覆盖右下方顶部的两个按钮面板但“右下方面板”的滚动条可以到达所有其他按钮(包括右下方面板底部的按钮)。
我的问题是如何显示“右下方面板”中的所有按钮?
提前谢谢你,我希望你能理解我的英语。
更新: 谢谢大家的帮助,但我没有解决我的问题,虽然我尝试了你的所有提示。现在我给你更详细的描述我想要实现的目标。
但我需要添加此面板的表单如下所示:
表单添加“root”面板,“root”面板广告3个面板(两个黑色面板停靠在顶部和底部),第三个面板是我们所说的面板,并且停靠填充。
现在,在我尝试减少表单大小的地方,我得到了这个:
现在我没有在spliter2.panel2中滚动,我的一些按钮消失了。我需要在spliter2.panel2中滚动,我需要滚动才能到达所有按钮。
有可能吗?再次感谢大家......
更新2: 我需要向另一个表单添加相同的行为。主差异(你可以在下面的图片上看到)是停靠面板上的另一个水平分割器(根面板添加顶部,底座和底部面板>>停靠面板添加水平分割器>> dockPanelSplitter.Panel1添加面板我们说话约):
虽然我设置了splitter3.Panel2 = true的AutoScroll属性,但我没有滚动。
答案 0 :(得分:1)
使用2 SplitContainers
,一个垂直,一个水平,第二个位于第一个Panel2
内,并动态添加按钮(或通过VS Designer),如下所示:
private void Form1_Load(object sender, EventArgs e)
{
Button button = new Button();
button.Text = "Button1";
button.Location = new Point(0, 10);
splitContainer2.Panel2.Controls.Add(button);
button = new Button();
button.Text = "Button2";
button.Location = new Point(0, 50);
splitContainer2.Panel2.Controls.Add(button);
}
结果:
编辑:要在新方案中使用其他面板获取滚动条,请执行以下操作:
splitContainer2.Panel2.AutoScroll = true;
结果: