2011-04-07 89 views
0

我有一個窗體,其中有各種標籤和一個按鈕..在按鈕點擊事件中,有一個代碼編寫生成一個cs文件,我希望在其中顯示標籤的文字..如何將標籤的文本添加到代碼dom中?

我試圖通過在代碼DOM中的以下函數的幫助獲取值,但無法提取標籤的值,即我只是獲取label1.text,label2.text等,而不是我想要的值有沒有在標籤和組合框..

誰能請幫助..

start.Statements.Add(new CodeVariableReferenceExpression("Info.Valid("\"combobox1.SelectedValue.ToString()\"", "\"label1.Text\"", "\"label2.Text\"", "\"label3.Text\"", "\"numericupdown.Value.ToString()\"")");

這裏開始是被添加所有的語句CodeMemberMethod,信息是另一個類,有效的是我需要所有這些值作爲參數傳遞它的方法..

回答

0

這就是正確的,你的代碼不應該提取物任何值,因爲您指定文本常量。您可以使用string.Format方法來準備文本數據。你可以試試下面:

string pattern = "Info.Valid(\"\"{0}\"\", \"\"{1}\"\", \"\"{2}\"\", \"\"{3}\"\", \"\"{4}\")"; 
string data = string.Format(pattern, 
      combobox1.SelectedValue.ToString(), 
      label1.Text, 
      label2.Text, 
      label3.Text, 
      numericupdown.Value.ToString()); 
start.Statements.Add(new CodeVariableReferenceExpression(data)); 

欲瞭解更多詳情請查看this

+0

這是給 – user672894 2011-04-07 13:30:51

+0

@ user672894錯誤「不設置到對象的實例對象引用」可惜我不能幫你在這種情況下。因爲你沒有提供生成異常的代碼。 – 2011-04-07 13:33:50

+0

其實我有公共無效的AddMethod(),其中我已經包含了codedom的所有語句,當我將這兩行寫入相同的方法時,它給了我錯誤:「對象引用未設置爲對象的實例」該行:「string data = string.Format(...);」 – user672894 2011-04-07 13:46:00

相關問題