我正在編寫一個小程序,該程序應該處理CSV和XML之間的轉換以及從XML到TXT的轉換。在主窗體中,我插入了兩個單選按鈕,用戶將單擊該按鈕開始所需的轉換。從另一個表格參考RadioButton_Checkedchanged值
到目前爲止,我必須使用.cs文件:MainForm.cs和ConversionForm.cs。
在MainForm.cs中,我已經聲明MainForm爲靜態,爲ConversionForm提供對其方法的訪問。
public MainForm()
{
InitializeComponent();
}
public static MainForm mform = null;
...然後我插入事件處理程序,檢查更改的功能:
public void CSVConversionRadio_CheckedChanged(object sender, EventArgs e)
{
this.CSVConversionRadio.Checked = true;
}
public void TXTConversionRadio_CheckedChanged(object sender, EventArgs e)
{
this.TXTConversionRadio.Checked = true;
}
我有一個「轉換」按鈕應該處理...
在ConversionForm該轉換基於用戶的輸入選擇。
public void conversionButton_Click(object sender, EventArgs e)
{
if (MainForm.mform.CSVConversionRadio.Checked = true)
{
CSVConversion();
}
if (MainForm.mform.TXTConversionRadio.Checked = true)
{
TXTConversion();
}
}
我面臨的問題是,當函數檢查單選按鈕的狀態,程序返回「空」,拋出異常。做一些修改代碼,也就是聲明靜態函數
public static MainForm mform = null;
之前
MainForm.mform.CSVConversionRadio.Checked總返回「假」,原因可能是一種新形式(轉化率)狀態被實例化並且事件處理程序將其狀態重置爲默認狀態。
所以,這裏是我的問題:
我怎樣才能單選按鈕的當前值傳遞給轉換表格,允許轉換功能根據用戶的選擇執行?
一般來說,我如何從另一個表單引用屬性,方法和字段,而不創建新的實例,但只指向前一個仍然打開?
我編輯了你的標題。請參閱:「[應該在其標題中包含」標籤「](http://meta.stackexchange.com/questions/19190/)」,其中的共識是「不,他們不應該」。 – 2013-03-22 21:46:09
我不認爲你需要在CheckChanged事件中再次設置複選框的值。試着評論一下,看看會發生什麼。 – 2013-03-22 21:46:30
另外,你不是指'if(MainForm.mform.CSVConversionRadio.Checked = true)'。你的意思是'if(MainForm.mform.CSVConversionRadio.Checked == true)',它與'if(MainForm.mform.CSVConversionRadio.Checked)'相同' – 2013-03-22 21:47:11