【问题标题】:Accessing multiple forms in C#在 C# 中访问多个表单
【发布时间】:2013-04-11 19:41:47
【问题描述】:

我正在尝试从我的项目的主要表单中访问一个表单。新的表单名称将是 AboutBox1,我希望它在用户单击“关于”工具条按钮时打开。

尽管 Intellisense 无法识别我创建的新表单 (AboutBox1),但我在 About 工具条按钮中执行代码时

我已经读到我需要创建我的新表单的一个实例,但是我不确定在哪里或如何做到这一点。

下面是我的代码。 (中间的东西全部忽略,访问新表单需要点击的工具箱按钮在底部) https://gist.github.com/anonymous/5366535

【问题讨论】:

标签: c# visual-studio-2010


【解决方案1】:

在你的 MenuItem 的 onClick-Handler 中:

//assuming AboutBox is derived from Form
AboutBox AboutBox1 = new AboutBox();
AboutBox1.Show(this);

【讨论】:

  • 函数调用中不必使用this。拥有对对象的引用就足以将数据转换为第二种形式。在我看来,在构造函数中引用父表单是取回数据的最佳方式。
  • 不同之处在于,如果您使用带有所有者参数的调用,AboutBox 将是模态的
  • MSDNYou can use this method to display a non-modal form. 此表单将不是模态的。使用ShowDialog 使其成为模态。
【解决方案2】:

首先,如果您需要从方法外部访问表单,请在类的顶部创建一个变量。

AboutBox1 frmAboutBox;

[STAThread]
...

但是看到这是一个关于页面,我认为你不需要它。

然后,制作并启动您的表单。

AboutBox frmAboutBox = new AboutBox();
frmAboutBox.Show();

您也可以frmAboutBox.ShowDialog() 使新孵化的表格始终位于顶部。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-17
    • 1970-01-01
    • 2015-12-31
    相关资源
    最近更新 更多