C#,子线程创建一个有Timer控件的窗体,但是Timer在子线程结束后就实效,求解

有2个窗体,Fom1和Form2。在Form2中,有一TextBox控件,和一Timer控件,每1000毫秒事件textBox1.Text=DateTime.Now.To... 有2个窗体,Fom1和Form2。
在Form2中,有一TextBox控件,和一Timer控件,每1000毫秒事件
textBox1.Text = DateTime.Now.ToString();
在Form1中有2个Button控件,和全局变量Form2 f2;
Button1点击事件
Thread t = new Thread(A);
t.Start();

Button2点击事件
f4.Show();

public void A()
{
f2 = new Form2();
}

-----------------------------

点击Button1,Button2后,F2显示出来,但是Timer就实效了。
如果在A方法中,同时添加f2.showdialog(),可以发现子线程结束之前,Timer控件还没有实效

现在的问题就是,如何让子线程创建出来的窗体中的Timer不实效
展开
 我来答
luzhan__326454
2011-11-28 · TA获得超过124个赞
知道小有建树答主
回答量:248
采纳率:0%
帮助的人:164万
展开全部
我试了,这样的Timer并没有失效。
你是不是其他地方错了。
更多追问追答
追问
……按钮1创建子窗体
按钮2显示子窗体
通过多线程来创建,多线程……不是主线程创建
追答
Form5 f5;
//打开子线程
private void button5_Click(object sender, EventArgs e)
{
Thread t = new Thread(new ThreadStart(aa));
t.Start();
}

private void aa()
{
f5 = new Form5();
}

//打开子窗体
private void button6_Click(object sender, EventArgs e)
{
f5.Show();
}

public partial class Form5 : Form
{
public Form5()
{
InitializeComponent();
}

private void timer1_Tick(object sender, EventArgs e)
{
this.textBox1.Text = DateTime.Now.ToLongTimeString();
}

private void Form5_Load(object sender, EventArgs e)
{
this.timer1.Start();
}

private void Form5_FormClosing(object sender, FormClosingEventArgs e)
{
this.timer1.Stop();
}
}

你看嘛。你还不信
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式