2013-03-11 53 views
0

我有一個列表框,並在一個單獨的類中我試圖訪問列表框的選定值,但它表示它不能被訪問,因爲它不是公共的。我也遇到與訪問標籤相同的問題。類中的訪問列表框

public dataCollector(string i) 
    { 
     string tag = i; 
    } 
    public string dataCollector() 
    { 
     Form1 f = new Form1(); 
     string workingDirectory = Directory.GetCurrentDirectory(); 
     var xmlFile = XDocument.Load(workingDirectory + @"\modules.xml"); 

     var name = from d in xmlFile.Descendants("Name") 
        where d.Value == (String)f.selectionBox.SelectedItem 
        select d.Parent.Element(tag).Value; 

     foreach (var item in name) 
     { 
      f.moduleName.Text = item.ToString(); 
     } 
    } 

回答

2

在表單上選擇ListBox並將Modifier屬性從Private改爲Public。

這是因爲窗體設計器將默認創建控件爲私有。您可以查看設計器生成的代碼並親自查看。

Form1.Designer.cs代碼...

partial class Form1 
{ 
... 
    private System.Windows.Forms.ListBox listBox1; 
} 

而且在設計變更修改屬性,上市後...

partial class Form1 
{ 
... 
    public System.Windows.Forms.ListBox listBox1; 
} 
+0

謝謝你,解決我的問題,你知道我能否從方法中獲得物品的價值並返回? – user2157179 2013-03-11 23:21:31

+0

歡迎來到SO,如果它解決了您的問題,請考慮接受它作爲答案。關於你的下一個/不同的問題,如果我理解你是正確的,那就看看@A。羅達斯回答。他實際上暗指我會認爲是一種更常見的解決方案,而我正在爲您的問題提供最直接的答案。 – blins 2013-03-11 23:32:20

+0

不知道如何接受它,並確定我會感謝您的幫助 – user2157179 2013-03-11 23:34:43