我正在使用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);
}
}
我知道我是以虚拟方式实现的,所以很抱歉我的代码很差。这种方法可以正常工作,直到您主要处理其中一个radiobuttons检查然后退出应用程序,以便将值写入文件。但是,当用户使用一个单选按钮然后切换到另一个(使用其他值)时,我如何实现这种情况,在那里工作并返回?在我的情况下,他仍然会从文本文件中看到那些旧值。我希望每次用户返回上一个单选按钮时,文本框中的值将是他输入的最新值。我希望我很清楚。谢谢你的帮助。
答案 0 :(得分:0)
如果我得到了正确的答案,那么当用户在单选按钮之间切换时,您希望用户在文本框中显示新文本。如果是这样的话:
我认为你应该修改两个单选按钮的
CheckedChanged
事件并添加一个函数 从文本框中获取实际文本并将其与数据进行比较 您已经保存在文本文件中。如果不同则保存 它并使用新文本显示单选按钮,因为你有新文本。如果它是相同的只是使用loadConfigFile(boxes);
希望逻辑可以帮助你:)