2014-07-16 20 views
0

在StackOverflow中我找不到任何回答我的問題的內容。我希望我在這裏說清楚。Do PictureBox控件具有除.Name之外的另一個屬性用於識別

我創建了一個窗體應用程序,這是遊戲Yahtzee。我爲了好玩而做了,而且差不多完成了。我試圖完成的是以下內容。

當用戶想要保存特定類別的分數時,他們只需點擊與其所選類別相關聯的圖片框即可。執行一些驗證和方程式,然後執行display()方法。這種方法記錄到GUI的文本區域他們剛剛得分了多少點。

我想讓日誌更容易閱讀和更有意義。這是我試圖完成的之前和之後。

當前代碼

... AppendText通過( 「\ nscored:」 +((圖片框)發件人+ NewYahtzee.Rollscore + 「爲點」),請將.Name)

電流輸出

打進50點pictureBoxYahtzee

輸出我想

拿下50分您的Yahtzee

所以我試圖用友好/顯示名稱替換控件的名稱。有沒有這樣的屬性或方式?

謝謝!

+5

http://msdn.microsoft.com/en-us/library/system.windows.forms.picturebox(v=vs.110).aspx如果您還不是已經可以使用標籤屬性或文本使用它。 –

+4

它是一個.NET類,與其他類一樣。所以只需從中派生出自己的類並添加任何需要「識別」的屬性即可。 –

+0

如果你想讓用戶可讀的字符串使用文本。對於任何更復雜的東西,比如字符串結構或其他任何使用Tag的東西! – TaW

回答

2

正如上述兩位評論者所說。

1.您可以使用PictureBox.Tag屬性。

當你要分配一些信息給PictureBox持有隻是做

String info = "MyInfo"; 
pictureBox1.Tag = (object)info; 

的有趣的事情是,與.Tag是一個object你可以框任何東西到.Tag財產。所以,你可以創建一個充滿信息的自定義類,並將其分配給.Tag

若要檢索您需要確保.Tag值是你賦予它同類型的信息,所以按照上面的例子

if(pictureBox1.Tag is String) 
{ 
    String info = (String)pictureBox1.Tag; 
} 

2。您擁有的另一個選項是擴展PictureBox類並將公共屬性添加到該類。

class PictureBoxEx : PictureBox 
{ 
    public String info { get; set; } 

    public PictureBoxEx() 
    { 
    } 
} 

然後找到你的PictureBox對象的定義,因爲它是現在,只是將其類型從PictureBoxPictureBoxEx,一切都應該是一樣的,除了現在你PictureBoxEx參考,其公共領域info

0

1)你可以製作你自己的派生類,如上所述。

2)您可以暫時更改控件的名稱。

3)你可以將它存儲在別的地方(也許是設置)。

我只是將屬性添加到pictureBox。

+0

出於好奇,我如何在這種情況下派生類? –

+0

請參閱我的答案的第2部分。它應該是你需要的一切,只需在你的IDE和麪食中創建一個類,然後將你希望將該屬性改變爲「PictureBoxEx」的任何「PictureBox」(你可能必須在添加該類之後構建該類) )。 – AnotherUser

+0

@AnotherUser - 非常感謝!這很棒! –

相關問題