首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WPF TextChanged事件

WPF TextChanged事件
EN

Stack Overflow用户
提问于 2014-02-15 02:56:15
回答 3查看 10.1K关注 0票数 0

我在我的WPF应用程序中有一个TextBox和一个按钮。当用户单击按钮时,它会将文本框的文本值保存到一个txt文件中。因此,基本上,当用户在TextBox中插入内容时,就会触发TextChaned事件。问题是,例如,如果用户键入"Daniel“并单击按钮,则用户输入的每个组合也会被保存。我怎么才能摆脱这个呢?

文本文件包含:

代码语言:javascript
复制
D
Da
Dan
Dani
Danie
Daniel

如何只保存最后一个字符串(Daniel),或者是否有其他事件处理程序来解决我的问题?顺便说一句,这实际上是一个列表,我使用的是Add方法。

代码,根据要求:

代码语言:javascript
复制
    // 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);
    }
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-02-15 03:47:04

我会尝试这样的东西:

代码语言:javascript
复制
// 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;
}
票数 2
EN

Stack Overflow用户

发布于 2014-02-15 03:01:46

您希望这由按钮的Click事件而不是TextBox的TextChanged事件来处理。

如下所示:

代码语言:javascript
复制
private void saveButton_Click(object sender, RoutedEventArgs e)
{
       using (var streamWriter = new StreamWriter("yourtextfile.txt", true))
       {
             streamWriter.WriteLine(textBox.Text);
       }
}
票数 3
EN

Stack Overflow用户

发布于 2014-02-15 03:04:50

您根本不需要TextChanged事件。

xaml

代码语言:javascript
复制
<TextBox Name="textToSave" />
<Button Click="saveToTextFile" />

政务司司长

代码语言:javascript
复制
private void saveToTextFile(...){
   string text = textToSave.Text;

   //code to save to text file

}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21787378

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档