我想把一些信息通过log1输出到一个ListBox(lbxlog)中,在其他线程中调用下面的委托,执行并无错误,但是执行完后此ListBox中的内容并不更新,到底是怎么回事?
望不吝赐教,谢谢。 public void write(string str)
{
lbxLog.Items.Add(str);
//lbxLog.Refresh();
}//执行到这里,lbxLog的Item会增加一个,但界面上并无反应。如果在主线程中直接用lbxLog.Items.Add(str),却能成功将string增加到界面中 private delegate void writeEvent(string str); public void log1(string str)
{
writeEvent writeEvent = new writeEvent(write);
writeEvent(str);
}
望不吝赐教,谢谢。 public void write(string str)
{
lbxLog.Items.Add(str);
//lbxLog.Refresh();
}//执行到这里,lbxLog的Item会增加一个,但界面上并无反应。如果在主线程中直接用lbxLog.Items.Add(str),却能成功将string增加到界面中 private delegate void writeEvent(string str); public void log1(string str)
{
writeEvent writeEvent = new writeEvent(write);
writeEvent(str);
}
解决方案 »
- 郁闷~~~~~~~~C#获取相对路径
- 急 在线等!!!!!!!!
- c#中,怎么能主动让窗口失效进行重绘
- visual C#和C#一样吗
- 关于WebClient的DownloadProgressChanged事件问题
- C#中treeview控件操作,比如在具体实现以下问题时,该如何办!!!!!!
- C#新手 希望高手指教 谢谢!!!
- 大家好,如果从上海请一位精通C/S 及 B/S等分布式企业级计算程序的分析及架构师或者相当有经验的人员,年龄在35岁以上,年薪大约需要多少?!
- 简单的编码转换问题,高分相送
- 数据库中汉字绑定到控件后成了乱码,请问如何解决?
- 关于oracel链接字符串 大家进来
- 关于MySQL与oracle调用.NET写的DLL库
public void SetListBox(string str)
{
if (listbox.InvokeRequired == true)
{
ListBoxCallback d = new ListBoxCallback(SetListBox);
listbox.Invoke(d, str); }
else
{
listbox.Items.Add(str);
listbox.SelectedIndex = listbox.Items.Count - 1;
listbox.ClearSelected(); }
}
用这种方法吧,适用的话给点分谢谢
public void write(string str)
{
lbxLog.Items.Add(str);
}
delegate void writeEvent(string str);在子线程中:
writeEvent log = write;
this.Invoke(log,str);