答案 0 :(得分:2)
为什么不动态地嵌入单个UserControl
来表示当前的页面,或者如果您想在设计时执行所有操作 - 自定义{{1} }?
显示来自另一个winform的内容
您通常不会将弹出窗口嵌入到另一个窗口中,而不是控件。否则你必须处理隐藏最小化,最大化,关闭等
答案 1 :(得分:0)
您可以使用TabControl控件 - >对于要显示的每个特定内容,您只需将TabPage添加到TabControl,当选择特定菜单选项时,只需切换到所需的TabControl页面。
myTabControl.SelectedIndex = 1; // for selecting and displaying page with index 1
要隐藏myTabControl的导航标题,请设置这些道具(在构造函数或Form_Load事件中:
myTabControl.ItemSize = new Size(0, 1);
myTabControl.SizeMode = TabSizeMode.Fixed;
然后,您只显示TabControl页面的内容,没有导航标题。
答案 2 :(得分:0)
首先从设计时间或运行时间制作this.IsMdiContainer = true;
。
然后在按钮的点击事件中放置以下代码。
childForm frm = new childForm();
frm.MdiParent = this; //the current mdi parent form
frm.FormBorderStyle = FormBorderStyle.None;
frm.Dock = DockStyle.Fill;
frm.Show();
答案 3 :(得分:0)
您可以使用mdi(多文档界面): 如果要在mainform中启动表单,请使用以下代码:
Dim hotelForm As New HotelForm()
HotelForm.MdiParent = Me // Me is your parent form want to open hotelForm inside
HotelForm.Show()
答案 4 :(得分:0)
所有表单都有一个属性TopLevel
,通过将此属性设置为false,然后您可以将该表单作为控件处理,并将其添加到面板控件。
见下面的伪代码:
Form2 newForm = new Form2();
newForm.TopLevel = false;
myPanel.Controls.Add(newForm);
newForm.Show();
之后,您的主要表单设计应该看起来像导航控件和停靠旁边的面板"填充"然后单击任何导航按钮,只需创建所需的表单并设置{{1} }到false,然后在面板上显示它
答案 5 :(得分:0)
您必须在表单中放置一个容器控件,例如面板“ pnlHost”,并使用它来显示您想要的任何表单
private Form _currentForme;
private void ShowForm(Form frm)
{
_currentForme?.Close();
_currentForme = null;
_currentForme = frm;
_currentForme.TopLevel = false;
_currentForme.TopMost = false;
pnlHost.Controls.Clear();
_currentForme.FormBorderStyle = FormBorderStyle.None;
pnlHost.Controls.Add(_currentForme);
_currentForme.Dock = DockStyle.Fill;
_currentForme.Show();
}
答案 6 :(得分:0)
MDI表单是最适合您的解决方案。
使用:this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;` 让您的孩子在您的项目中更漂亮!
如果您希望MDI父级自动调整子表单的大小,则可以这样编写代码。
代码示例:
private void Form1_Load(object sender, EventArgs e)
{
IsMdiContainer = true;
}
private void btnHotel_Click(object sender, EventArgs e)
{
Form2 frm2 = new Form2();
frm2.Show();
frm2.MdiParent = this;
}
private void btnCaffe_Click(object sender, EventArgs e)
{
Form3 frm3 = new Form3();
frm3.Show();
frm3.MdiParent = this;
}
答案 7 :(得分:-1)
将当前表单设置为 MdiParent 然后使用 Datagridview 显示来自其他表单的数据