c# - 我们可以在 .Net windows 窗体的第一个窗体的同一窗口上打开第二个窗体吗?
问题描述
我们可以在 Windows 窗体(.net c#)的第一个窗体的窗口上打开第二个窗体(隐藏第一个窗体)吗???详细问题:假设我有Form-A。Form-A 有下一个按钮,我想打开 Form-B(在同一个窗口上,隐藏 Form-A) 同样在 Form-B 上,我可以点击后退按钮,我们将获得上一个表单(Form- A 在这种情况下)。
我在 MS 访问中找到了这个。我们可以在.Net windows窗体中实现相同的吗???
解决方案
你确定你想用多个不同的来做这个Forms
吗?
你可以像点击下一步一样实现这WinForms
一点,你隐藏你当前的表单,让它保持FormA
并显示另一个表单,让它FormB
在FormA
'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
,将Next和Back Buttons
放置在其下方。您可以将多个添加Tabs
到您的TabControl
,并且您可以将任何可以Control
放在. (要隐藏 Tab 标题,请设置以下属性):Tabs
Form
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:这里
推荐阅读
- android - 滚动 RecyclerView 后单击不起作用
- sql - 检索由 Informatica Power Center 处理的特定时间窗口的数据
- python - 使用 Python 删除数据框中特定字符之后的所有字符
- amazon-web-services - 将数据从 s3 传输到 s3 冰川
- node.js - 防止在一对多关系 Mongoose 中引用重复的字符串值
- node.js - 如何获取用于获取离线/刷新令牌的 Outlook 日历代码
- vue.js - 为什么 npm vue-google-login 没有显示在 Vue 上?
- mysql - 我的本地护照无法使用我正在使用 MySQL。为什么它在 POST 中给出 302 并呈现 failureRedirect?
- python - 创建第二个卷积神经网络层时似乎有什么问题?
- react-native - React Native Reanimated 仅允许在特定区域拖动