我正在编写一个小程序,它应该处理 CSV 和 XML 之间以及从 XML 到 TXT 的转换。在主窗体中,我插入了两个单选按钮,用户将单击它们以开始所需的转换。
到目前为止,我必须使用 .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();
}
}
我面临的问题是,当函数检查单选按钮的状态时,程序返回“null”,引发异常。在对代码做一些改动之前,即声明静态函数
public static MainForm mform = null;
MainForm.mform.CSVConversionRadio.Checked 始终返回“false”状态,可能是因为正在实例化新表单(转换)并且事件处理程序将其状态重置为默认值。
所以,这是我的问题:
如何将单选按钮的当前值传递给转换表单,从而允许根据用户的选择执行转换功能?
一般来说,我如何从另一个表单引用属性、方法和字段,而不创建新实例,而只指向仍然打开的前一个实例?