2015-08-15 70 views
2

我有兩個形式的程序:無法檢索用戶的文本框中輸入

表1有一個TextBoxButton。 Form2有一個DataGridView

然後,我有與接受字符串作爲參數的構造函數的一類:

public SymbolData(string symbol) 
{ /* Do stuff */ } 

DataGridView顯示從在SymbolData定義的表中的數據時用戶點擊按鈕。

我的問題是,當我點擊按鈕,從文本檢索到的字符串是一個我在它的Text屬性插入不管什麼插入TextBox輸入代碼herewhen程序運行

這裏是哪裏我創建SymbolData例如:

public Form2() 
    { 
     InitializeComponent(); 
     SymbolData sd = new SymbolData(f1.textButton1.Text); 

     dataGridView1.DataSource = sd.Table; 
    } 

誰能幫我通過從TextBox用戶的輸入在我SymbolData對象的構造函數,當我打電話了嗎?

+0

很高興看到您的問題解決了。請讓我注意到兩個關於發佈到SO的事情:__不要調用'DataGridView'' GridView'或'DataGrid'!這是錯誤和混亂的,並且經常會從其他類型的目標(如WPF或ASP)中得到錯誤的答案...始終用__right__名稱來稱呼它們!是的,它需要更多__four__字母才能打字,但在這裏尋求幫助時__not__時間太懶了! - 另外:我已經從標題中刪除了C#,因爲它已經在標籤中,只有重要的標籤應該在標題中重複。 – TaW

回答

1

如果你真的想要實例在Form2SymbolData然後讓你的窗口2的構造函數接受一個字符串參數和參數傳遞給SymbolData構造像下面

public Form2(string form1data) 
{ 
    InitializeComponent(); 
    SymbolData sd = new SymbolData(form1data); 
    dataGridView1.DataSource = sd.Table; 
} 

然後在你的Form1按鈕單擊事件得到Form2一個實例並傳遞文本框數據

protected void btn1_Click(object sender, EventArgs e) 
{ 
    Form2 frm2 = new Form2(this.textButton1.Text.Trim()); 
    frm2.Showdialog(); 
} 
+1

不太喜歡這種方法,當然它的作品,但不是很OOP。 您應該考慮一個用於在兩個類之間交換數據的單例類 –

1

您可以通過多種方式實現,但大多數方法都需要創建一個事件。您可以在窗體上創建一個按鈕,當您雙擊它時會創建一個單擊事件。然後你可以通過這種方式傳遞你的文本。

private void button1_Click(object sender, EventArgs e) 
    { 
      SymbolData sd = new SymbolData(f1.textButton1.Text); 
    } 

您也可以創建文本框,如按鍵時,KEYUP,的keydown事件,你可以找到在文本框的屬性這些事件,並點擊面板頂部的閃電看事件。