با سلام
در برنامه ام یک تایمر از نوع 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;
}
}
}
اینم خود پیام خطا:
لطفا" راهنمایی فرمایید با تشکر