2013-04-22 41 views
0

在形式上1我已經把Comboxbox成分,我已經這樣做了......我如何打電話Combox.Text從另一個類

string value = cBAdmin.Text; 

我想離開這個Comboxbox形式1,但我想調用來自另一個類的Comboxbox並執行其餘的編碼。我該怎麼做呢?如果有人能幫助我,請提前致謝。

+4

可怕的想法... – 2013-04-22 18:03:05

+1

嗯,這取決於。你爲什麼想這樣做?它可以幫助我們告訴你如何**或**幫助我們解釋爲什麼你應該改變你的設計 – phadaphunk 2013-04-22 18:05:10

+0

無論如何,我感覺你想要做什麼..谷歌如何創建用戶控件和使用wpf – 2013-04-22 18:06:13

回答

5

非常糟糕的主意,但你可以將其暴露AA公開文本框,或者您也可以通過獲取屬性暴露值,像

public string TextBoxValue { get { return cBAdmin.Text; } } 
+0

謝謝,我會採取你和eveyone的建議,這是一個壞主意。 – bucketblast 2013-04-22 19:08:16

0

那麼如果你是要叫組合框屬性從不同的線程,你可以做這樣的事情。我不確定這是不是你要找的?

Foo c = new Foo(cBAdmin); 
c.DoSomethingWithComboBox(); 

public class Foo 
    { 
     private ComboBox m_cb; 
     public Foo(ComboBox cb) 
     { 
      m_cb = cb; 
     } 
     public void DoSomethingWithComboBox() 
     { 
      //Do something with m_cb 
     } 
    } 
} 
+0

@svcrcoder - 謝謝,我會採取你和eveyone的建議,這是一個壞主意。 – bucketblast 2013-04-22 19:09:14

0

嗯,我想從comboBox中獲取值,你不需要從另一個窗體調用comboBox。相反,你需要從某處保存.Text屬性的值,而且我認爲你應該使用委託。還有一個機會 - 創建form2構造函數重載,並在您調用form2時在該重載中發送該值。不過,我認爲這不是最好的方法。使用委託的變體如下所示,可能不是很好,但沒有足夠的時間讓它變得更好。

/*here is code of Form1.cs*/ 
    public static string result; 
    public delegate string GetComboValue(string val); 
    public static string valueForCombo(string comboBoxValue) 
    { 
     string strVal = comboBoxValue; 
     return strVal; 
    } 
    public Form1() 
    { 
     InitializeComponent(); 
      result = ""; 

    } 
    private void button3_Click(object sender, EventArgs e) 
    { 
     GetComboValue cmb = new GetComboValue(valueForCombo); 
     result = cmb(comboBox1.Text); 
    } 

     /*Form2.cs, displaing value of comboBox from form1.cs*/ 
    private void Form2_Load(object sender, EventArgs e) 
    { 
     string val = ""; 
     val = Form1.result; 
     textBox1.Text = val; 
    } 
+0

謝謝,我會採取你和eveyone的建議,這是一個壞主意。 – bucketblast 2013-04-22 19:08:40