一次替换多个文本框中的'n'



我有一个窗口窗体应用程序,在这个应用程序中,有几个文本框,想要替换特征线并以电子邮件的形式一键发送。因为我有多个文本框,而不是这样写:

string text = textBox1.Text;
text = text.Replace("n", "<br/>");
string text2 = textBox2.Text;
text2 = text2.Replace("n", "<br/>");
...
string textBody ="<tr bgcolor = '#C39BD3'><td>Name</td><td>" + text + "</td></tr>" +"<tr bgcolor = '#C39BD3'><td>Age</td><td>" + text2 + "</td></tr>" + ...

有什么方法可以一次替换这些文本框中的行吗?

我试着把一个循环:

for (int i = 1; i < 20; i++)
{TextBox txtbox = (TextBox)this.Controls.Find("textBox" + i, true)[0]; }

我一直呆在这里。有什么建议吗?

您的窗体是一个控件,它有一个属性Controls This属性"获取包含在控件"中的控件的集合;。

您可以使用Enumerable。OfType对此进行筛选,以便只获得文本框。

有什么方法可以一次替换这些文本框中的行吗?

您需要foreach来替换文本:

var textBoxesToUpdate = this.Controls.OfType<TextBox>();
foreach (TextBox textBox in textBoxesToUpdate)
{
string proposedText = textBox.Text.Replace("n", "<br/>");
textBox.Text = proposedText;
} 

我在你的问题中也看到了这一点

string textBody = "<tr bgcolor = '#C39BD3'><td>Name</td><td>" + text1 + "</td></tr>"
+ "<tr bgcolor = '#C39BD3'><td>Age</td><td>"  + text2 + "</td></tr>"
+ ...

我不知道你想用这个干什么。考虑编辑问题并更改此项。

最新更新