Visual Studio 2019(C#) 如何编写帮助窗体可返回任意前序窗体的返回按钮代码
功能实现方案
核心逻辑是通过传递前序窗体实例,让帮助窗体可以识别打开它的源窗体,点击返回时直接切回对应窗体,有两种常用实现方式可选:
方式一:非模态打开帮助窗体(原窗体隐藏,帮助窗体独立显示)
步骤1:修改帮助窗体代码,添加接收源窗体的属性
在你的帮助窗体类代码中新增一个公共的Form类型属性,用于存储打开它的前序窗体实例,同时编写返回按钮的点击逻辑:
public partial class HelpForm : Form { // 新增属性,用于保存前序窗体实例 public Form PreviousForm { get; set; } public HelpForm() { InitializeComponent(); } // 返回按钮点击事件 private void BackBtn_Click(object sender, EventArgs e) { // 显示之前的源窗体 PreviousForm.Show(); // 关闭当前帮助窗体 this.Close(); } }
步骤2:修改所有窗体的帮助按钮点击逻辑
所有带帮助按钮的窗体,在打开帮助窗体时,把当前自身实例传递给帮助窗体的PreviousForm属性,同时隐藏自身:
// 任意窗体的帮助按钮点击事件 private void HelpBtn_Click(object sender, EventArgs e) { HelpForm helpWindow = new HelpForm(); // 将当前窗体作为源窗体传给帮助窗体 helpWindow.PreviousForm = this; // 隐藏当前窗体 this.Hide(); // 打开帮助窗体 helpWindow.Show(); }
方式二:模态弹出帮助窗体(更简单,无需传递窗体实例)
如果不需要隐藏原窗体,直接把帮助窗体作为模态对话框弹出即可,用户关闭帮助窗体后会自动回到原窗体,无需额外写跳转逻辑:
- 帮助窗体的返回按钮只需要写关闭逻辑即可:
private void BackBtn_Click(object sender, EventArgs e) { this.Close(); }
- 所有窗体的帮助按钮点击事件直接模态弹出帮助窗体:
private void HelpBtn_Click(object sender, EventArgs e) { HelpForm helpWindow = new HelpForm(); // 模态弹出,用户必须先操作帮助窗体才能回到原窗体 helpWindow.ShowDialog(); }
内容的提问来源于stack exchange,提问作者Odhran Kerr
相关产品推荐
相关产品推荐

