私はC#を初めて使い、メールを送るためのアプリケーションを作っています。私がしたいのは、リアルタイムで送信する電子メールをテキストボックスフィールドに表示することです。フォームではないクラスのテキストフィールドにリアルタイムデータを表示できますか?
操作:アプリケーションを実行すると、データベースと通信してレコードを取得し、しばらくしてレコードを調べて対応するメールを送信します。これまでのところとてもうまく動作しています。
私がしたいこと:各メールを送信した後、リアルタイムで送信された電子メールをテキストボックスに表示することですが、できません。
以下は、私のプロジェクトの構造の非常に単純なコードを示しています。
/****************CLASS FORM1***************************/
namespace envioEmails
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
/********Shipping button*********/
private void button1_Click(object sender, EventArgs e)
{
Consultas objetoConsultas = new Consultas();
objetoConsultas.consultaBaseDatos();
}
private void campoTextBox_TextChanged_1(object sender, EventArgs e)
{
//In this textbox is where I want to display the data in real time.
}
}
}
/*********CLASS CONSULTAS (This class is not a form)*******************/
namespace envioEmails
{
class Consultas
{
public void consultaBaseDatos(){
//Here I connect to the database and get the records.
//Then I run the records with a while ...
while(myreader.Read()){
string email=myreader["emails"].ToString());
if(this.enviarCorreo(email){
/**This is where I should call the fieldTextBox event, but I am unable to do so.**/
campoTextBox.Text=email;
}
}
}
private bool enviarCorreo(string email){
//I connect to the SMTP server and send the mail.
try
{
//Code for sending ....
return true;
}
catch()
{
return false;
}
}
}
}
次のコードに示すように、私もイベントにしながらポイントの内側にForm1クラスをインスタンス化しようとしましたが、私はどんな結果
while(myreader.Read())
{
string email=myreader["emails"].ToString());
if(this.enviarCorreo(email){
Form1 formularioPadre = new Form1();
((TextBox)formularioPadre.Controls["campoTextBox"]).Text = email;
}
}
は、あなたの将来をありがとう取得していません答え。
私は 'TextChanged'イベントがこれと何をしなければならないのか分かりません。説明できますか? – Crowcoder