我在我的WPF应用程序中有一个TextBox和一个按钮。当用户单击按钮时,它会将文本框的文本值保存到一个txt文件中。因此,基本上,当用户在TextBox中插入内容时,就会触发TextChaned事件。问题是,例如,如果用户键入"Daniel“并单击按钮,则用户输入的每个组合也会被保存。我怎么才能摆脱这个呢?
文本文件包含:
D
Da
Dan
Dani
Danie
Daniel如何只保存最后一个字符串(Daniel),或者是否有其他事件处理程序来解决我的问题?顺便说一句,这实际上是一个列表,我使用的是Add方法。
代码,根据要求:
// Button, just ignore all the crap inside
private void saveChangesButton_Click(object sender, RoutedEventArgs e)
{
System.IO.File.WriteAllLines(@System.IO.File.ReadAllText(@System.IO.Directory.GetCurrentDirectory() + "/dir.txt") + "/commandline.txt", checkedValues);
}
// List
private List<String> checkedValues = new List<String>();
// TextChanged
private void sWidth_TextChanged(object sender, TextChangedEventArgs e)
{
checkedValues.Add(sWidth.Text);
}发布于 2014-02-15 03:47:04
我会尝试这样的东西:
// List
private List<String> checkedValues = new List<String>();
public int nTextboxChanged = 0;
// Button, just ignore all the crap inside
private void saveChangesButton_Click(object sender, RoutedEventArgs e)
{
if(nTextboxChanged == 1)
{
checkedValues.Add(sWidth.Text);
System.IO.File.WriteAllLines(@System.IO.File.ReadAllText(@System.IO.Directory.GetCurrentDirectory() + "/dir.txt") + "/commandline.txt", checkedValues);
}
}
// TextChanged
private void sWidth_TextChanged(object sender, TextChangedEventArgs e)
{
nTextboxChanged = 1;
}发布于 2014-02-15 03:01:46
您希望这由按钮的Click事件而不是TextBox的TextChanged事件来处理。
如下所示:
private void saveButton_Click(object sender, RoutedEventArgs e)
{
using (var streamWriter = new StreamWriter("yourtextfile.txt", true))
{
streamWriter.WriteLine(textBox.Text);
}
}发布于 2014-02-15 03:04:50
您根本不需要TextChanged事件。
xaml
<TextBox Name="textToSave" />
<Button Click="saveToTextFile" />政务司司长
private void saveToTextFile(...){
string text = textToSave.Text;
//code to save to text file
}https://stackoverflow.com/questions/21787378
复制相似问题