【发布时间】:2013-08-01 21:26:26
【问题描述】:
我有以下问题。基于图像
子窗体上的某些控件无法正确显示。我也不能在子窗体上使用Autoscroll set to true,因为它的一些控件是anchored bottom。
我想的解决方法是当子窗体的高度重叠时在父窗体上有一个滚动条。我应该在我的代码中添加什么以使父表单具有滚动条?
我使用此代码在父表单中显示子表单。
void ParentButtonClickNew(){
ChildForm entry = new ChildForm();
LoadChildForm(entry, this);
}
public void LoadChildForm(object childForm, object container)
{
System.Windows.Forms.Form xForm = (System.Windows.Forms.Form)childForm;
System.Windows.Forms.Control control = (System.Windows.Forms.Control)container;
xForm.TopLevel = false;
if (control.Controls.Count == 0)
{
xForm.Parent = control;
xForm.StartPosition = FormStartPosition.CenterScreen;
//xForm.WindowState = System.Windows.Forms.FormWindowState.Maximized;
xForm.Show();
xForm.BringToFront();
}
else
{
bool isFound = false;
for (int i = 0; i <= control.Controls.Count - 1; i++)
{
try
{
System.Windows.Forms.Form myForm = (System.Windows.Forms.Form)control.Controls[i];
if (myForm.Name == xForm.Name)
{
isFound = true;
xForm.StartPosition = FormStartPosition.CenterScreen;
myForm.Show();
myForm.BringToFront();
}
else
{
myForm.SendToBack();
}
}
catch { }
}
if (!isFound)
{
try
{
xForm.Parent = control;
System.Windows.Forms.Form myForm = (System.Windows.Forms.Form)control.Controls[xForm.Name];
xForm.StartPosition = FormStartPosition.CenterScreen;
myForm.Show();
myForm.BringToFront();
}
catch { }
}
}
}
【问题讨论】:
-
control.AutoScroll = true;怎么样,你必须将父表单的AutoScroll设置为true。 -
不,控件没有那个属性
-
你必须将
container转换为ContainerControl或Form,Control没有AutoScroll。 -
我试过了,还是不行。
-
嘿@KingKing 我再次测试了它。仅当父窗体的控件未设置为锚定底部且父窗体较高时,父窗体上的 AutoScroll 才会显示。我希望它像 mdiform 一样工作,但只是垂直滚动条..
标签: c# .net winforms scrollbar