محمد ذبیحی نژاد
جمعه 21 شهریور 1393, 12:18 عصر
با سلام
در برنامه ام یک تایمر از نوع System.Timerقرار دادم که هنگام اجرای تابع فراخوان تایمر به محض رسیدن به توابع کلیپبورد مثل Clipboard.Clear ویا Clipboard.SetText خطا STAThread می دهد:
متن کد:
namespace WindowsFormsApplication2
{
public partial class Form1 : Form
{
public System.Timers.Timer tTimer = new System.Timers.Timer(1000);
DateTime d;
public Form1()
{
InitializeComponent();
}
public void start()
{
tTimer.Elapsed += new ElapsedEventHandler(RunTimer);
tTimer.Enabled = true;
tTimer.Start();
}
public void RunTimer(Object stateInfo, ElapsedEventArgs e)
{
if (d < DateTime.Now)
{
tTimer.Stop();
Clipboard.Clear();
string reportText = File.ReadAllText(@"c:\test.txt");
Clipboard.SetText(reportText);
}
}
private void button1_Click(object sender, EventArgs e)
{
if (button1.Text == "Start Timer")
{
DateTime dt = dateTimePicker1.Value;
if (dt < DateTime.Now)
{
textBox1.Text = "Invalid date";
return;
}
d = dt;
button1.Text = "Stop Timer";
start();
}
else
tTimer.Stop();
}
private void button2_Click(object sender, EventArgs e)
{
if (Clipboard.ContainsText())
textBox1.Text = Clipboard.GetText();
else
textBox1.Text = "No text to Paste";
}
private void Form1_Load(object sender, EventArgs e)
{
Clipboard.Clear();
dateTimePicker1.Value = DateTime.Now;
}
}
}
اینم خود پیام خطا:
123348
لطفا" راهنمایی فرمایید با تشکر
در برنامه ام یک تایمر از نوع System.Timerقرار دادم که هنگام اجرای تابع فراخوان تایمر به محض رسیدن به توابع کلیپبورد مثل Clipboard.Clear ویا Clipboard.SetText خطا STAThread می دهد:
متن کد:
namespace WindowsFormsApplication2
{
public partial class Form1 : Form
{
public System.Timers.Timer tTimer = new System.Timers.Timer(1000);
DateTime d;
public Form1()
{
InitializeComponent();
}
public void start()
{
tTimer.Elapsed += new ElapsedEventHandler(RunTimer);
tTimer.Enabled = true;
tTimer.Start();
}
public void RunTimer(Object stateInfo, ElapsedEventArgs e)
{
if (d < DateTime.Now)
{
tTimer.Stop();
Clipboard.Clear();
string reportText = File.ReadAllText(@"c:\test.txt");
Clipboard.SetText(reportText);
}
}
private void button1_Click(object sender, EventArgs e)
{
if (button1.Text == "Start Timer")
{
DateTime dt = dateTimePicker1.Value;
if (dt < DateTime.Now)
{
textBox1.Text = "Invalid date";
return;
}
d = dt;
button1.Text = "Stop Timer";
start();
}
else
tTimer.Stop();
}
private void button2_Click(object sender, EventArgs e)
{
if (Clipboard.ContainsText())
textBox1.Text = Clipboard.GetText();
else
textBox1.Text = "No text to Paste";
}
private void Form1_Load(object sender, EventArgs e)
{
Clipboard.Clear();
dateTimePicker1.Value = DateTime.Now;
}
}
}
اینم خود پیام خطا:
123348
لطفا" راهنمایی فرمایید با تشکر