更新更改从文本框

时间:2015-12-27 17:22:11

标签: c# winforms replace textbox

我有一个文本框,我可以通过单击按钮来查找和替换内容,但它不会更改文本框本身。 下面是我用来改变一些东西的代码:

private void button2_Click_1(object sender, EventArgs e)
{
    var abc = textBox1.Text.Between("abc", "&");
    var def = textBox1.Text.Between("def", "&");
    var ghi = textBox1.Text.Between("ghi", "&");
    var jkl = textBox1.Text.Between("jkl", "&");
    var test = abc.Replace("" + abc + "", "any");
    var test1 = def.Replace("" + def + "", "any");
    var test2 = ghi.Replace("" + ghi + "", "any");
    var test3 = jkl.Replace("" + jkl + "", "any");
}

现在我正在使用按钮,但是当我启动按钮时,它不会改变文本框中的任何内容。

我一直在谷歌上搜索,发现this.textBox1.Refresh(); 但这也不会改变任何事情。

所有的帮助都会很棒,感谢提前..

1 个答案:

答案 0 :(得分:0)

您必须将更改后的string分配回textBox1。这样的事情。

编辑:假设你的意思是this

private string findBetweenMethod(string text, string start, string end){
    string betweenText = text;
    .... //process
    return betweenText;
}

private void button2_Click_1(object sender, EventArgs e)
{
    var abc = findBetweenMethod(textBox1.Text,"abc", "&"); //find what to change
    textBox1.Text = textBox1.Text.Replace(abc, "any"); //change it, assign it back to the textBox1
    var def = findBetweenMethod(textBox1.Text,"def", "&"); 
    textBox1.Text = textBox1.Text.Replace(def, "any");
    var ghi = findBetweenMethod(textBox1.Text,"ghi", "&"); 
    textBox1.Text = textBox1.Text.Replace(ghi, "any");
    var jkl = findBetweenMethod(textBox1.Text,"jkl", "&"); 
    textBox1.Text = textBox1.Text.Replace(jkl, "any");
}

注意:请注意您的文字模式。上述方法假设干净,单一,模式。也就是说,你真正想要的是在“abc”和“&”之间(依此类推)并且除了预期的模式之外,没有其他地方重复这种模式。

但这里的基本想法是将已更改的string分配回textBox1,正如@sharpstudent和其他人所解释的那样