使用VS設計器,我創建了一個窗口(Form1)與幾個單選按鈕。從另一個類來看,如果檢查單選按鈕,我會嘗試執行一條語句。使用radiobutton.Checked在另一個類(問題與靜態/非靜態的東西)
public static string printRailType()
{
if (Form1.rb60E1.Checked)
{
return "60E1";
}
else if (Form1.rb49E1.Checked)
{
return "49E1";
}
else
{
return "Rail type not selected.";
}
不過,我有它的問題,這似乎是一個錯誤:
An object reference is required for the non-static field, method, or property 'RailCalc.Form1.rb60E1' Same for Form1.rb49E1.
所以,要解決這些錯誤,我創建了Form1的一個實例:
public static string printRailType()
{
Form1 frm1 = new Form1();
if (frm1.rb60E1.Checked)
{
return "60E1";
}
else if (frm1.rb49E1.Checked)
{
return "49E1";
}
else
{
return "Rail type not selected.";
}
}
但是,即使選擇了單選按鈕,它仍會打印未選擇鐵軌類型。
看起來frm1是類Form1的一個實例,但它被創建並重置(沒有選定的單選按鈕)。
我該如何解決這個問題?
我沒有全部用C#不太好,但你有一個'static'方法,並在那裏你試圖訪問一個「非靜態」字段或屬性。 – user959631