小弟最近做一个WinForm程序.在程序中必须调用一个异步方法,在异步方法的回调中需要
改变主界面的一个Label值,在异步回调中如果直接改Label值它是不容许你改的,我在网
上查了下,发现用这个方法可以改主界面的Lable值
private void RefushClientList()
{
lock(this)
{
object[] pList = { this, System.EventArgs.Empty };
this.treeList.BeginInvoke(new System.EventHandler(UpdateTree), pList);
}
}
但是在我程序里面改变Label的值是需要做为参数传递给UpdateTree方法的,我试着创建
一个新的委托和派生System.EventArgs类,让它派生的类多加一个属性然后传递参数到
UPdateTree方法里面去,程序编译没有错误,但是当我程序调用这个窗体的时候报错,错误
为:未能在给定的程序集中找到任何适合于指定的区域性(或非特定区域性)的资源,请确
保已将"MCHClientMain.resources"正确嵌入或者链接到程序集"MCHClient".
还请各位高手帮忙让小弟超生谢谢.
改变主界面的一个Label值,在异步回调中如果直接改Label值它是不容许你改的,我在网
上查了下,发现用这个方法可以改主界面的Lable值
private void RefushClientList()
{
lock(this)
{
object[] pList = { this, System.EventArgs.Empty };
this.treeList.BeginInvoke(new System.EventHandler(UpdateTree), pList);
}
}
但是在我程序里面改变Label的值是需要做为参数传递给UpdateTree方法的,我试着创建
一个新的委托和派生System.EventArgs类,让它派生的类多加一个属性然后传递参数到
UPdateTree方法里面去,程序编译没有错误,但是当我程序调用这个窗体的时候报错,错误
为:未能在给定的程序集中找到任何适合于指定的区域性(或非特定区域性)的资源,请确
保已将"MCHClientMain.resources"正确嵌入或者链接到程序集"MCHClient".
还请各位高手帮忙让小弟超生谢谢.
解决方案 »
- C#中DataGridView的RowValidating事件是什么时候发生的?是怎样进行验证的,能不能给个例子,谢谢
- Help Me 关于mediaplayer控件
- 安装Visual Studio 2005 Sp1 的问题?很郁闷!
- 一个数字超过64位了,怎么计算啊
- 如何配置本地SMTP才能发信
- 关于Winform下的图片拼接(急,在线等)
- C#winfrom 怎么获得任意选中的一篇word模板中的书签名称!!!
- 求第二代身份PowerCtrl.dll,termb.dll,HWControl.dll
- 有大量数据时DataGridView是该邦定数据源还是不邦定 希望高手指点 谢谢了(在线等待)
- 如何进行类型转换
- comboBox怎么设置属性使用户只能选择无法输入?
- 请问如何编写DATALIST中的ImageButton的事件。当点击它,指向它所指向的网址。
/// <summary>
/// 将信息显示到列表框中
/// </summary>
/// <param name="msg">信息</param>
/// <param name="messageTypeP">信息类型</param>
void ShowMsg(string msg,MessageType messageTypeP)
{
ShowMsg(new TransferEventArgs("",msg));
} /// <summary>
/// 将信息显示到列表框中,这里是关键的处理方法
/// </summary>
/// <param name="msg">信息</param>
/// <param name="logType">信息类型</param>
void ShowMsg(TransferEventArgs e)
{
if (InvokeRequired)
{
object[] pList = { this, e }; // Invoke the method.
// NB, this class is derived
// from Form, so we can just call BeginInvoke
// on ourselves to get to the UI thread.
BeginInvoke(new TransferEventHandler(ShowMsgToListView),pList);
} // custom class:
else
{
ShowMsgToListView(this,e);
}
} void ShowMsgToListView(object obj,TransferEventArgs e)
{
if (lvLog.Items.Count > LogKeepCount * 2)
{
int i;
for (i = lvLog.Items.Count - LogKeepCount; i >= 0 ; --i)
{
lvLog.Items.RemoveAt(i);
}
}
string logTypeString = this.GetText(e.MessageType.ToString(),-1);
string timeString = DateTime.Now.ToString("F") + "." + DateTime.Now.Millisecond.ToString("000");
ListViewItem lvi = this.lvLog.Items.Add((++msgCount).ToString());
lvi.SubItems.Add(logTypeString);
lvi.SubItems.Add(timeString);//yyyy/MM/dd HH:mm:ss"));
lvi.SubItems.Add(e.ToString());
lvi.EnsureVisible(); WriteLog(msgCount.ToString() + "\t" + logTypeString + "\t" + timeString + "\t" + e.ToString());
}