2009-12-29 35 views
10

我在我的C#項目中使用Microsoft的Visual C#2008 Express Edition命名爲AboutBox1的關於框。我已經在設計視圖中看到了它的樣子,但是如何在單擊「幫助」菜單中的「關於」鏈接時顯示它?如何讓關於框出現在C#中?

此代碼使「關於」框出現,但它看起來空白。這不是我設計的。

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

任何想法或建議,將不勝感激。謝謝。

+0

也許我的代碼示例有誤導性。最初,我想我可以做一些像AboutBox1.ShowDialog();但ShowDialog()似乎不是AboutBox1的成員。 – 2009-12-30 15:11:20

回答

13

明白了。

about框被驅逐出您的項目的裝配屬性。

進入項目 - >'ProjectName'屬性 - >程序集信息。

您在那裏設置所有信息。

如果您嘗試在屬性資源管理器中設置信息,它將在運行時被在此窗口中的任何內容重寫。

乾杯, 邁克

+0

感謝您的領導,邁克! – 2009-12-30 15:33:17

9

這聽起來對我來說就像一個borked設計師的表面......你打保存並重建它嗎?也許關閉IDE,重新打開它,並檢查你精心設計的表單是否仍然漂亮?

BTW,使用ShowDialog時也應該使用using(因爲它不Dispose()本身時ShowDialog所示):

using(AboutBox1 box = new AboutBox1()) { 
    box.ShowDialog(this); 
} 
3

你擺脫方法調用「的InitializeComponent」中的構造函數你的AboutBox - 表單?

你的構造函數至少應該是這樣的:

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

凡InitializeComponent方法調用應該是在構造函數中的第一行。

+0

如果您從構造函數中刪除InitializeComponent(),您將收到運行時異常。 – 2009-12-29 23:15:03

+0

不,您不會得到運行時異常。你試過了嗎? 創建一個新的winforms項目,在窗體上添加一個按鈕,並從構造函數中刪除InitializeComponent行... – 2009-12-29 23:26:46

0

如果它顯示但是空白,問題出現在AboutBox1中。向我們展示一些代碼。

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(); 
    } 
} 
+1

我會保持在至少版本行。由於其他情況,每次更改時都需要在兩個地方更新版本。你一定會忘記一個。 – CodesInChaos 2011-02-19 08:49:30

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的項目exploer,並點擊「查看代碼」按鈕「<>」 。

+0

這是一個答案,我希望你應該發表評論,而不是發表回答。 – Dipak 2013-03-16 05:04:33

相關問題