「System.Windows.Controls.Textbox には GetEnumerator のパブリック定義が含まれていないため、foreach ステートメントは System.Windows.Controls.Textbox 型の変数に対して操作できません」というエラーが表示されます。
私のコード:
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" />