我需要做一些控制靜態的,例如:是否允許在窗體設計器生成的代碼(* .Designer.cs文件)中更改代碼以使某些控件成爲靜態的?
string myInfo = CourseWork.Form1.infoBox.Text;
但是當我使用可視化設計,視覺工作室改變了我的代碼:
private static System.Windows.Forms.TextBox infoBox;
infoBox = new System.Windows.Forms.TextBox();
,所以我將能夠在其他類使用於:
private System.Windows.Forms.TextBox infoBox; // it removes static
this.infoBox = new System.Windows.Forms.TextBox(); // and add .this
然後我有一個錯誤:
An object reference is required for the non-static field,
method, or property 'CourseWork.Form1.infobox'
可以避免這種情況嗎?或者我做錯了什麼?
自動生成的代碼是設計師的責任心。你一定不要碰它。如果您需要擴展它或手動編寫接口,請使用子類化 –
即使您*可以*這樣做,您絕對*不應該*。你甚至不應該在不同的類中訪問*字段,如果你想訪問表單中的文本框,你應該有一個工作表單的*實例*。 –
我想如果你解釋了*爲什麼*你試圖將文本框定義轉換爲'static',我們可能會指出你正確的方向。主要是因爲你目前所做的是非常錯誤的。 – NotMe