我有一个窗口窗体应用程序,在这个应用程序中,有几个文本框,想要替换特征线并以电子邮件的形式一键发送。因为我有多个文本框,而不是这样写:
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>"
+ ...
我不知道你想用这个干什么。考虑编辑问题并更改此项。