这是我得到的错误-'foreach 语句不能对 System.Windows.Controls.Textbox 类型的变量进行操作,因为 System.Windows.Controls.Textbox 不包含 GetEnumerator 的公共定义。
我的代码:
private void btnSendEmail_Click_1(object sender, RoutedEventArgs e)
{
MailMessage message = new MailMessage();
message.From = new MailAddress(txtEmail.Text);
message.Subject = txtSubject.Text;
message.Body = txtBody.Text;
foreach (string s in txtEmailAddresses)
{
message.To.Add(s);
}
SmtpClient client = new SmtpClient();
client.Credentials = new NetworkCredential();
}
'foreach' 上有一条红色波浪下划线,带有该错误。文本框应该是一个多行文本框。使用 winForms 这很容易。我可以转到属性窗口并将多行属性设置为true,然后它就可以正常工作,只要用户输入的地址用分号分隔即可。但是,winforms 中需要 2 秒的所有内容在 WPF 中都是一个大问题,所以我在 WPF 文本框中遇到了这个错误。有谁知道我为什么会收到这个错误以及如何处理它?这也是我的 xaml,以防我缺少一些需要在文本框上设置以使其成为多行或其他内容的属性。
<Label Content="Recipients:"
HorizontalAlignment="Left"
Margin="26,10,0,0"
VerticalAlignment="Top" />
<Label Content="Subject:"
HorizontalAlignment="Left"
Margin="26,114,0,0"
VerticalAlignment="Top" />
<TextBox x:Name="txtEmailAddresses"
HorizontalAlignment="Left"
Height="73"
Margin="26,36,0,0"
TextWrapping="Wrap"
VerticalAlignment="Top"
Width="278"
ToolTip="When providing multiple email addresses, separate them with a semi colon" />
<TextBox x:Name="txtSubject"
HorizontalAlignment="Left"
Height="23"
Margin="81,117,0,0"
TextWrapping="Wrap"
VerticalAlignment="Top"
Width="223" />