13

我的 C# 项目中有一个 About 框,使用 Microsoft 的 Visual C# 2008 Express Edition,名为 AboutBox1。我已经在设计视图中让它看起来像我想要的那样,但是当单击“帮助”菜单中的“关于”链接时,如何让它出现?

此代码使关于框出现,但它看起来是空白的。这不是我设计的。

  private void aboutToolStripMenuItem_Click(object sender, EventArgs e)
  {
     AboutBox1 box = new AboutBox1();
     box.ShowDialog();
  }

任何想法或建议将不胜感激。谢谢。

4

6 回答 6

17

知道了。

关于框是从项目的装配属性中删除的。

转到项目 -> 'ProjectName' 属性 -> 装配信息。

您在那里设置了所有信息。

如果您尝试在属性资源管理器中设置信息,它只会在运行时被此窗口中的内容覆盖。

干杯,迈克

于 2009-12-29T23:19:31.187 回答
10

在我看来,这听起来像是一个糟糕的设计师表面......你有没有点击保存并重建它?也许关闭 IDE,重新打开它,然后检查您精心设计的表单是否仍然漂亮?

顺便说一句,在使用时ShowDialog你也应该使用using(因为它本身不是Dispose()用 显示的ShowDialog):

using(AboutBox1 box = new AboutBox1()) {
    box.ShowDialog(this);
}
于 2009-12-29T23:08:17.920 回答
3

您是否在 AboutBox - 表单的构造函数中删除了对“InitializeComponent”的方法调用?

您的构造函数至少应如下所示:

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

其中 InitializeComponent 方法调用应该是构造函数中的第一行。

于 2009-12-29T23:08:52.987 回答
0

如果它出现但为空白,则问题出在 AboutBox1。向我们展示其中的一些代码。

于 2009-12-29T23:09:19.963 回答
0

我之前遇到过同样的问题,但我通过删除下面的语句来解决它InitializeComponent();

默认代码:

partial class AboutBox1 : Form
{
    public AboutBox1()
    {
        InitializeComponent();
        this.Text = String.Format("About {0} {0}", AssemblyTitle);
        this.labelProductName.Text = AssemblyProduct;
        this.labelVersion.Text = String.Format("Version {0} {0}", AssemblyVersion);
        this.labelCopyright.Text = AssemblyCopyright;
        this.labelCompanyName.Text = AssemblyCompany;
        this.textBoxDescription.Text = AssemblyDescription;
    }
}

我的最终代码:

partial class AboutBox1 : Form
{
    public AboutBox1()
    {
        InitializeComponent();
    }
}
于 2011-02-19T08:44:17.000 回答
0

我找不到项目/项目名称/程序集属性。

InitializeComponent();但是在为我工作后注释掉这些台词 。

这是我的样子:

 public frmAboutBox1()
    {
        InitializeComponent();
        //this.Text = String.Format("About {0}", AssemblyTitle);
        //this.labelMyFFEProductName.Text = AssemblyProduct;
        //this.labelVersion.Text = String.Format("Version {0}", AssemblyVersion);
        //this.labelCopyright.Text = AssemblyCopyright;
        //this.labelCompanyName.Text = AssemblyCompany;
        //this.textBoxDescription.Text = AssemblyDescription;
    }

如果您像我一样是业余爱好者,要找到这些行,请单击项目资源管理器中的 AboutBox,然后单击View Code按钮<>

于 2013-03-16T04:41:31.077 回答