FJP*_*ort 3 c# user-controls winforms visual-c#-express-2010
我创建了按钮的用户控件Save,Close和Cancel.我想关闭表单而不保存取消按钮,提示消息保存在关闭按钮上,保存而不关闭保存按钮.通常,我会使用this.Close()取消按钮,但UserControl没有这样的选项.所以我想我必须为此设置一个属性.
向下滚动该"Questions that may already have your answer"部分,我遇到了这个问题:如何从其中加载的UserControl按钮关闭ChildWindow?我使用了以下C#代码:
private void btnCancel_Click(object sender, EventArgs e)
{
ProjectInfo infoScreen = (ProjectInfo)this.Parent;
infoScreen.Close();
}
Run Code Online (Sandbox Code Playgroud)
这可以完成一个屏幕的工作,但我想知道是否必须为我拥有的所有屏幕应用此代码?我认为应该有一种更有效的方式.所以我的问题是:我是否需要为我拥有的每种表单应用此代码,还是有另一种(更有效)的方式?
您可以使用适用于任何控件的 FindForm 方法:
private void btnCancel_Click(object sender, EventArgs e)
{
Form tmp = this.FindForm();
tmp.Close();
tmp.Dispose();
}
Run Code Online (Sandbox Code Playgroud)
不要忘记 Dispose 表单来释放资源。
希望这可以帮助。