gpt4 book ai didi

c# - 如何从另一个窗体调用函数

转载 作者:太空狗 更新时间:2023-10-29 23:58:55 26 4
gpt4 key购买 nike

在我的项目中,我有一个设置窗体和一个主窗体。我试图从设置窗体调用主窗体的 MasterReset 函数,但没有任何反应。
主窗体的 Masterreset 函数如下所示。

public void MasterReset()
{
DialogResult dialogResult = MessageBox.Show("Are you sure you want to perform master reset? All settings will be set to default.", "Warning", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
if (dialogResult == DialogResult.Yes)
{
string path = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
string phonebook_path = path + "\\Phonebook\\Contacts.xml";
XmlDocument xDoc = new XmlDocument();
xDoc.Load(phonebook_path);
XmlNode xNode = xDoc.SelectSingleNode("People");
xNode.InnerXml = "";
xDoc.Save(phonebook_path);
listView1.Clear();
people.Clear();
}
else if (dialogResult == DialogResult.No)
{
return;
}
}

我正在像这样从设置表单访问它

private void btn_MasterReset_Click(object sender, EventArgs e)
{
Main f1 = new Main();
f1.MasterReset();
}

为什么我看不到任何结果?

最佳答案

你知道吗composition over inheritance是吗?

在你有 MasterReset 的表单中你应该做这样的事情:

假设在您的第二个表单中有类似这样的东西,并且假设您的“主表单”将被称为“MasterForm”。

public partial class Form1 : Form
{
private MasterForm _masterForm;

public Form1(MasterForm masterForm )
{
InitializeComponent();
_masterForm = masterForm;

}
}

这是您的 masterForm 类中的代码:

 private void button2_Click(object sender, EventArgs e)
{
Form1 form1 = new Form1(this);

}

这是你的 form1:

private void btn_MasterReset_Click(object sender, EventArgs e)
{
_masterForm.MasterReset();
}

希望这对您有所帮助!

关于c# - 如何从另一个窗体调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20286176/

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