gpt4 book ai didi

c# - 从 FormClosing 事件设置属性值

转载 作者:太空宇宙 更新时间:2023-11-03 23:39:21 25 4
gpt4 key购买 nike

我的主窗体上有一个 ToolStripButton 并附加了一个单击事件,单击它会打开一个对话框并将 toolStripButton 的 Checked 状态设置为“true”。在通过上述单击打开的窗体的 FormClosing 事件中,尝试将相同的 toolStripButton 的 Checked 状态设置为“false”。但状态始终保持为“真”。

toolStripButton1_Click(object sender, EventArgs e)
{
if (!toolStripButton1.Checked)
{
toolStripButton1.Checked = true;
RevisionTools revTools = new RevisionTools();
revTools.ShowDialog();
}
}

创建如下属性:

public bool revEditState
{
get{return this.toolStripButton1.Checked;}
set{this.toolStripButton1.Checked = value;}
}

点击打开的对话框:

public partial class RevisionTools : Form
{
public RevisionTools()
{
InitializeComponent();
}
private void RevisionTools_FormClosing(object sender, FormClosingEventArgs e)
{
MainForm mainForm = new MainForm();
mainForm.revEditState = false;
}
}

这是设置属性值的正确方法吗?它是一个 WinForms 应用程序。

最佳答案

您正在 MainForm 的一个新实例上设置它。您需要在打开对话框时传递 MainForm 的实例,或者您可以在 ShowDialog 之后在 MainForm 本身中执行此操作。

在您的示例中,在 ShowDialog 上执行此操作将是更好的方法。

RevisionTools revTools = new RevisionTools(); 
revTools.ShowDialog();
this.revEditState = false;

注意:您还可以捕获 Dialog 的结果作为 DialogResult 以有条件地设置此值。即,如果用户在对话框中单击“确定”或“取消”。

关于c# - 从 FormClosing 事件设置属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29624952/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com