gpt4 book ai didi

c# - 从另一个窗体调用方法 C#

转载 作者:行者123 更新时间:2023-11-30 22:11:53 26 4
gpt4 key购买 nike

我有一个像这样的 Mainform:

public partial class MainForm : Form
{
string FileName = "";

public MainForm()
{
InitializeComponent();
}

private void goToToolStripMenuItem_Click(object sender, EventArgs e)
{

}

private void menuItem_Click(object sender, EventArgs e)
{
ToolStripMenuItem menuItem = (ToolStripMenuItem ) sender;

switch (menuItem.Name.Replace("ToolStripMenuItem",""))
{
case "new":
MenuItemNew();
break;
case "open" :
MenuItemOpen();
break;
case "save":
MenuItemSave();
break;
case "saveAs" :
MenuItemSaveAs();
break;
case "exit" :
MenuItemExit();
break;
case "selectAll" :
MenuItemSelectAll();
break;
}
}

private void MenuItemSelectAll()
{
textBox.SelectAll();
}

private void MenuItemExit()
{
this.Close();
}

private void MenuItemSaveAs()
{
SaveFileDialog sfd = new SaveFileDialog();
sfd.Filter = "Text Document |*.txt";
if (sfd.ShowDialog() == DialogResult.OK)
{
StreamWriter writer = new StreamWriter(sfd.FileName);
writer.Write(textBox.Text);
writer.Close();
}
}

private void MenuItemSave()
{
if (FileName == "")
{
MenuItemSaveAs();
}
else
{
StreamWriter writer = new StreamWriter(FileName);
writer.Write(textBox.Text);
writer.Close();
}
}

private void MenuItemOpen()
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "Text Document|*.txt";
if (ofd.ShowDialog() == DialogResult.OK)
{
FileName = ofd.FileName;
StreamReader reader = new StreamReader(ofd.FileName);
textBox.Text = reader.ReadToEnd();
reader.Close();
}
}

private void MenuItemNew()
{
if (textBox.Text == "")
{
textBox.Text = String.Empty;
}
else
this.Show();
Newform sistema=new Newform();
sistema.ShowDialog();
}
}

还有一个像这样的 Newform:

public partial class Newform : Form
{
public Newform()
{
InitializeComponent();
}

private void cancel_Click(object sender, EventArgs e)
{
this.Close();
}

private void dontsave_click(object sender, EventArgs e)
{

}

private void save_Click(object sender, EventArgs e)
{
this.Hide();
}
}

在我的新表单中单击保存时,我需要 MenuItemSaveAs 在我的主表单中打开。

最佳答案

首先

 public void MenuItemSaveAs()

然后

private void save_Click(object sender, EventArgs e)
{
this.Hide();
((MainForm)Parent).MenuItemSaveAs()
}

这假定您的表单是 MainForm 的子表单。如果不是,则需要将对 MainForm 的引用传递到窗体的构造函数中并将其保存在本地。 (还有一种方法可以始终找到当前程序的主窗体,但我认为这不是解决问题的优雅方法。)

关于c# - 从另一个窗体调用方法 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20007074/

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