我的表单的高度设置为780,这是允许的最大限制。 我在表格中添加了一个超出表格范围的小组。设计器模式允许我只滚动到窗体的底部,但不滚动到面板的底部。
由于这个原因,我无法将控件拖放到Panel的底部。
查看以黄色突出显示的图像部分:
答案 0 :(得分:1)
Form
的最大高度通常与屏幕的当前分辨率相关联,因此预期的行为是无法访问部分位于Form
底部的控件。< / p>
解决此问题的一种方法是在设计器中将AutoScroll
的{{1}}属性设置为Form
,这样您就可以向下滚动并访问整个True
},在设计器中或运行时将其设置回Panel
。
在下面的屏幕截图中,您可以看到两个垂直滚动条。最右边的那个允许您上下滚动整个表单,但不允许您访问Panel的其余部分。它左侧的那个将向上和向下滚动表单的内容,并允许您访问该面板。
或者向上移动False
,在其中完成您需要做的工作,然后再次在设计时或运行时将其移回原位。
答案 1 :(得分:1)
如果要向表单添加控件并且需要的空间超过允许的最大值,则不能使用[Import] // MEF is able to inject it even tho it's set accessor is protected
IMyDependencie MyDependency { get; protected set; }
执行此操作。您应该以编程方式将Form Designer
添加到表单中:
controls
同时在设计器中将public Form3()
{
InitializeComponent();
Panel panel1 = new Panel();
Label[] lblArr = new Label[100];//Use any control you want
int y = 10;
for (int i = 0; i < 100; i++)
{
lblArr[i] = new Label();
lblArr[i].Text = "lbl" + i;
lblArr[i].Location = new Point(30, y);
panel1.Location = new Point(0, 0);
panel1.Size = new Size(600, 2500);
panel1.Controls.Add(lblArr[i]);
y += 25;
}
this.Controls.Add(panel1);
}
的{{1}}属性设置为AutoScroll
。
答案 2 :(得分:0)
当面板的数量或大小不允许在设计器中同时看到所有面板时。您可以按照以下方式操作:
在设计模式中:
- Create a TabControl with 2 or more tabPages,
- In TabPage0, create a MainPanel (Dock=Fill) to put most of the form controls,
- In other TabPage(s), put your additional panels.
在表单创建:
- Set the Parent property of MainPanel, i.e. mainPanel.Parent=this,
- Same for the Panels in other TabPages and update their location,
- Set the Parent property of the TabControl to null