首页 > 解决方案 > 我们可以在 .Net windows 窗体的第一个窗体的同一窗口上打开第二个窗体吗?

问题描述

我们可以在 Windows 窗体(.net c#)的第一个窗体的窗口上打开第二个窗体(隐藏第一个窗体)吗???详细问题:假设我有Form-A。Form-A 有下一个按钮,我想打开 Form-B(在同一个窗口上,隐藏 Form-A) 同样在 Form-B 上,我可以点击后退按钮,我们将获得上一个表单(Form- A 在这种情况下)。

我在 MS 访问中找到了这个。我们可以在.Net windows窗体中实现相同的吗???

标签: c#.netwinforms

解决方案


你确定你想用多个不同的来做这个Forms吗?

你可以像点击下一步一样实现这WinForms一点,你隐藏你当前的表单,让它保持FormA并显示另一个表单,让它FormBFormA's 的位置。

private void buttonNext_FormA(object sender, EventArgs e)
{
  frmB.StartPosition = FormStartPosition.Manual;
  frmB.Location = new Point(this.Location.X, this.Location.Y);
  frmB.Show();
}

private void buttonBack_FormB(object sender, EventArgs e)
{
  frmA.StartPosition = FormStartPosition.Manual;
  frmA.Location = new Point(this.Location.X, this.Location.Y);
  frmA.Show();
}

导航next-back-next的一个有点不同但通用的解决方案是TabControl:将 a 放置TabControl到您的Form,将NextBack Buttons放置在其下方。您可以将多个添加Tabs到您的TabControl,并且您可以将任何可以Control放在. (要隐藏 Tab 标题,请设置以下属性):TabsForm

tabControl.Appearance = TabAppearance.FlatButtons;
tabControl.ItemSize = new Size(0, 1);
tabControl.SizeMode = TabSizeMode.Fixed;

订阅返回按钮单击和下一步按钮单击事件,如下所示:

private void btnBack_Click(object sender, EventArgs e)
{
  if (tabControl.SelectedIndex > 0)
    tabControl.SelectedIndex--;
}

private void btnNext_Click(object sender, EventArgs e)
{
  if(tabControl.SelectedIndex < tabControl1.TabPages.Count)
    tabControl.SelectedIndex++;
}

但是您可以通过WPF ( Windows Presentation Foundation ) NavigationWindow来实现这一点,这也是一项很酷的技术,它正是为此目的而制作的。有一个用于实现导航窗口的小教程广告 MSDN:这里


推荐阅读