c# - 如何在 UserControl 中关闭窗体

标签 c# winforms user-controls visual-c#-express-2010

我创建了一个带有按钮 SaveCloseCancel 的 UserControl。我想关闭表单而不保存取消按钮,提示消息保存在关闭按钮和保存而不关闭保存按钮。通常,我会在“取消”按钮上使用 this.Close(),但 UserControl 没有这样的选项。所以我想我必须为此设置一个属性。

向下滚动 “可能已经有了答案的问题” 部分,我遇到了这个问题:How to close a ChildWindow from an UserControl button loaded inside it?我使用了以下 C# 代码:

private void btnCancel_Click(object sender, EventArgs e)
{
    ProjectInfo infoScreen = (ProjectInfo)this.Parent;
    infoScreen.Close();
}

这对一个屏幕有效,但我想知道我是否必须对我拥有的所有屏幕应用此代码?我认为应该有一种更有效的方法。所以我的问题是:我是否需要为我拥有的每个表单应用此代码,还是有另一种(更有效的)方法?

最佳答案

你可以使用

((Form)this.TopLevelControl).Close();

关于c# - 如何在 UserControl 中关闭窗体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13527474/

相关文章:

c# - 从子窗体访问主窗体

c# - 如何使用可调整大小的单元格制作 TableLayoutPanel,例如使用 Splitter

c# - 将窗口保持在顶部并在 WinForms 中窃取焦点

wpf - 创建一个方形用户控件

iphone - 从 UIWebView 打开媒体播放器时收到通知吗?

c# - Linq to 实体导航属性

c# - 只读属性 setter

c# - 为什么 Request.BodyReader 是空的,当我添加请求参数时(ASP.NET Core 3.0)

c# - 单一窗体 Windows 窗体应用程序的设计模式

c# - 我可以迭代数据源吗?