当前位置:编程学习 > C#/ASP.NET >>

新建线程下timer的问题!!!求解!!!来人啊

public Thread tcpThread; 
private void main_Load(object sender, EventArgs e)
{
    tcpThread = new Thread(new ThreadStart(tcpReciveThread));//创建线程
    tcpThread.Start();//开始
}
public void tcpReciveThread()
{
     timer1.Interval = 120;
     timer1.Start();
}

 private void timer1_Tick(object sender, EventArgs e)//
{
     treeView1.Nodes[0].BackColor = Color.HotPink;
     //???????此句在treeview上没有一点反应,若在此句后面加上messagebox就可以看见反应,谁能告诉我为什么为什   
     //么?????
     //MessageBox.Show("aaa");加了这句treeview就有反应。。。
}

--------------------编程问答-------------------- 感觉一直在给背景色赋相同的值,不知道有什么意图....
感觉应该是类似于死循环了程序停不下来,而messbox.show()则迫使程序暂停所以有效果
如果你不停的给textbox.text赋不同的值;也放在timer的那个事件里面,你也看不到变化的...... --------------------编程问答-------------------- 试试:
private void timer1_Tick(object sender, EventArgs e)//
{
  treeView1.Nodes[0].BackColor = Color.HotPink;
  treeView1.Refresh();
} --------------------编程问答--------------------
引用 1 楼 jelenyoung 的回复:
感觉一直在给背景色赋相同的值,不知道有什么意图....
感觉应该是类似于死循环了程序停不下来,而messbox.show()则迫使程序暂停所以有效果
如果你不停的给textbox.text赋不同的值;也放在timer的那个事件里面,你也看不到变化的......

private void timer1_Tick(object sender, EventArgs e)//
{
  treeView1.Nodes[0].BackColor = Color.HotPink;
  timer1.stop();
}
我之前就是想表达一下意思,把时间换成上面颜色也不能显示 --------------------编程问答-------------------- 把间隔时间设置得长点试试 --------------------编程问答--------------------
引用 2 楼 lzsh0622 的回复:
试试:
private void timer1_Tick(object sender, EventArgs e)//
{
  treeView1.Nodes[0].BackColor = Color.HotPink;
  treeView1.Refresh();
}


public Thread tcpThread;  
private void main_Load(object sender, EventArgs e)
{
  tcpThread = new Thread(new ThreadStart(tcpReciveThread));//创建线程
  tcpThread.Start();//开始
//  MessageBox.Show("a");加上这句就可以显示颜色
}
public void tcpReciveThread()
{
  timer1.Interval = 120;
  timer1.Start();
//
}

 private void timer1_Tick(object sender, EventArgs e)//
{
  treeView1.Nodes[0].BackColor = Color.HotPink;
  treeView1.Refresh();
  timer1.stop();
}
--------------------编程问答-------------------- up up up --------------------编程问答--------------------
引用 4 楼 hualiang_ll 的回复:
把间隔时间设置得长点试试

还是不行。。。 --------------------编程问答--------------------
引用 2 楼 lzsh0622 的回复:
试试:
private void timer1_Tick(object sender, EventArgs e)//
{
  treeView1.Nodes[0].BackColor = Color.HotPink;
  treeView1.Refresh();
}


不行。。
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,