【问题标题】:How to run a function from another form when ... ? C#当...时如何从另一种形式运行函数? C#
【发布时间】:2018-07-06 11:40:22
【问题描述】:

我有一个带有 menustrip 和 tabcontrol 的 form1,form2 在 tabpage1 中打开。当我单击 ToolStripMenuItem 时,我想从 form2 运行一个公共函数。 form2 使用此代码打开:

form2 sar = new form2(usrnm);
sar.TopLevel = false;
sar.WindowState = FormWindowState.Maximized;
sar.FormBorderStyle = FormBorderStyle.None;

TabPage tb = new TabPage();
tb.Controls.Add(sar);

sar.Parent = tb;
tabControl1.TabPages.Add(tb);
sar.Show();

tabControl1.SelectTab(tb);
tabControl1.SelectedTab.Text = "Oncor Daily";

我在 form2 中有一个 public void savenewform() 函数,我想运行它。我不知道我该怎么做。

【问题讨论】:

  • 可能是sar.savenewform()。除此之外,您应该考虑遵循 .NET-naming-conventions,例如通过使用SaveNewForm
  • 所以如果我理解得很好,form1 正在运行并打开form2?您分享的代码属于form1
  • 是的。 Form2 有一个功能。我在 Form1 的标签页中打开此表单。然后,当我单击 Form1 中的项目菜单时,我想从 Form2 运行一个函数。

标签: c# forms tabcontrol


【解决方案1】:

在 Form1 的某处存储对“sar”的引用,然后您的 ToolStripMenuItem 可以检查“某处”是否为非空,然后将其用作对表单的引用。由于引用的类型为“form2”,因此您的公共函数将可用。

如果你想为其他表单类型使用这个技巧,你可能需要为它们创建一个接口,所以你可以将它们视为“iDavesSubForm”而不是“Form2”。

【讨论】:

    猜你喜欢
    • 2021-12-20
    • 1970-01-01
    • 1970-01-01
    • 2017-11-06
    • 1970-01-01
    • 2012-12-05
    • 1970-01-01
    • 2015-05-09
    • 1970-01-01
    相关资源
    最近更新 更多