2014-11-05 38 views
-8

我有一個窗體與九個按鈕和標籤集。點擊按鈕功能更新標籤中的數字。最後,我將標籤值保存到一個文件中。這些標籤有名稱,如eLabel1,eLabel2,eLabel3 ..我正在使用循環環繞開關(大小寫)來選擇和保存標籤。 我的問題是,如果有什麼東西與switchcase代碼行少?我正在考慮像「e」+我這樣的字符串來調用標籤。我知道沒有.GetByName(),但有什麼別的用途?像.FromHandle()?c#更快的方式來讀取所有的文本框/標籤

這裏是簡短的版本。 我有九個標籤eLabel1,eLabel2,eLabel3 ..

public void save() 
{ 
    for (int i = 0; i < 9; i++) 
    { 
     string[] posstrings=switchpos(i+1); 

     //string manipulation stuff 
    } 
} 

    private string[] switchpos(int i) 
    { 

     string e; 
     string[] posstrings; 
     switch (i) 
     { 
      case 1: 
       e = eLabel1.Text; 
       break; 
      case 2: 
      //and so on 
     } 

     posstrings = new string[11] { e, m, l, s, b, pfc, pfr, pf3, cf, ct, cr}; 
     return posstrings; 
    } 

我想知道是否有不同的方式做開關。

+5

這是一個很大的沒有代碼說話。我們是程序員,我們喜歡閱讀CODE。 – jbutler483 2014-11-05 16:42:14

+0

請說明您的具體問題或添加其他詳細信息,以確切地突出顯示您的需求。正如它目前所寫,很難確切地說出你在問什麼。請參閱如何問問頁面以獲取幫助以澄清此問題。 – cybermonkey 2014-11-05 16:42:40

+5

*我知道沒有.GetByName()* - >'this.Controls.Find(「name」)' – 2014-11-05 16:43:59

回答

1

您可以創建引用數組標籤:

Label[] labels = { eLabel1, eLabel2, eLabel3, ... }; 

生產與標籤上的文字的數組將是一個班輪:

string[] values = labels.Select(l => l.Text).ToArray(); 
相關問題