C# 在切换单选按钮C时加载和保存文本框值#

C# 在切换单选按钮C时加载和保存文本框值#,c#,asp.net,visual-studio,textbox,radio-button,C#,Asp.net,Visual Studio,Textbox,Radio Button,我正在Visual Studio 2017上使用c#构建一个应用程序。我的界面由几个文本框和两个单选按钮组成。每次关闭应用程序时,我都会将文本框的值保存到两个单独的文本文件中。因此,我有两个文本文件(每个单选按钮)。每次选中单选按钮时,我都会从相应的txt文件中加载文本框值。这就是它现在的实施方式: private void radioButton1_CheckedChanged(object sender, EventArgs e) { TextBox[] boxes

我正在Visual Studio 2017上使用c#构建一个应用程序。我的界面由几个文本框和两个单选按钮组成。每次关闭应用程序时,我都会将文本框的值保存到两个单独的文本文件中。因此,我有两个文本文件(每个单选按钮)。每次选中单选按钮时,我都会从相应的txt文件中加载文本框值。这就是它现在的实施方式:

private void radioButton1_CheckedChanged(object sender, EventArgs e)
    {
        TextBox[] boxes = { textBoxAscStart, textBoxAscStep };
        loadConfigFile(boxes);
    }


private void radioButton2_CheckedChanged(object sender, EventArgs e)
    {
        TextBox[] boxes = { textBoxAscStart, textBoxAscStep };
        loadConfigFile(boxes);
    }


private void loadConfigFile(TextBox[] boxes) {
        try
        {
            string dir = Directory.GetCurrentDirectory();
            string fullName;
            if (radioButton1.Checked == true)
            {
                fullName = dir + "\\Config1.txt";
            }
            else
            {
                fullName = dir + "\\Config2.txt";
            }
            char[] delimiter = new char[] { '\t' };
            using (System.IO.StreamReader file = new System.IO.StreamReader(@fullName))
            {
                for (int i = 0; i < boxes.Length; i++)
                {
                    string[] line = file.ReadLine().Split(delimiter);
                    boxes[i].Text = line[1];
                }
            }
        }
        catch (IOException ex)
        {
            MessageBox.Show(ex.Message);
        }
    }
private void radioButton1\u CheckedChanged(对象发送方,事件参数e)
{
TextBox[]box={textBoxAscStart,textboxascsstep};
加载配置文件(框);
}
私有void radioButton2\u CheckedChanged(对象发送方,事件参数e)
{
TextBox[]box={textBoxAscStart,textboxascsstep};
加载配置文件(框);
}
私有void loadConfigFile(文本框[]框){
尝试
{
string dir=Directory.GetCurrentDirectory();
字符串全名;
如果(radioButton1.Checked==true)
{
全名=dir+“\\Config1.txt”;
}
其他的
{
全名=dir+“\\Config2.txt”;
}
字符[]分隔符=新字符[]{'\t'};
使用(System.IO.StreamReader file=new System.IO.StreamReader(@fullName))
{
对于(int i=0;i

我知道我是以一种虚假的方式实现的,所以很抱歉我的代码太差了。这种方法可以很好地工作,直到您主要使用其中一个选中的单选按钮,然后退出应用程序,以便将值写入文件。但是,当用户在一个单选按钮上工作,然后切换到另一个单选按钮(使用另一个值),在那里工作一点,然后返回时,我如何实现这种情况呢?在我的例子中,他仍然可以从文本文件中看到这些旧值。我希望每次用户返回到前一个单选按钮时,文本框中的值都是他输入的最新值。我希望我说得够清楚了。谢谢您的帮助。

如果我没有弄错的话,您的问题是希望用户在单选按钮之间切换时在文本框中输入新文本。如果是:

我认为您应该修改两个单选按钮的
CheckedChanged
事件,并添加一个函数 从文本框中获取实际文本,并将其与数据进行比较 您已经保存在文本文件中。如果不同,则保存 它可以编辑并使用新文本来显示单选按钮,因为您得到了新文本。如果相同,只需使用
loadConfigFile(框)希望逻辑能帮助您:)


在后台缓存它们。