问题描述
在我最近做得一个程序中,需要在一个不是主线程的线程中改变两个个控件的Text属性,一个空间是richtextbox,另外一个是statusstrip控件,想用invoke方法来解决,想问能不能定义一个委托来解决啊,让他根据传入得参数不同来执行不同代码。不然我就要定义这样两个委托:privatedelegatevoidChangeText(RichTextBoxtb,stringstr);privatedelegetevoidChagneStatus(statusstripst,strngstr);能不能定义一个委托就能解决问题啊
解决方案
解决方案二:
可以啊,privatedelegatevoidChangeText(Controlc,stringstr);
解决方案三:
根据传入的控件的类型来判断撒比如说都作为obj传入再转化如richtextbox果richtextbox某种独有属性存在则为richtextbox反之亦然
解决方案四:
用泛型委托试试privatedelegetevoidChagneStatus<T>(Tctl,strngstr);
解决方案五:
引用3楼fuadam的回复:
用泛型委托试试privatedelegetevoidChagneStatus<T>(Tctl,strngstr);
顶
解决方案六:
引用3楼fuadam的回复:
用泛型委托试试privatedelegetevoidChagneStatus<T>(Tctl,strngstr);
解决方案七:
引用3楼fuadam的回复:
用泛型委托试试privatedelegetevoidChagneStatus<T>(Tctl,strngstr);
解决方案八:
该回复于2008-07-22 16:35:13被版主删除
解决方案九:
那如果是这样得话泛型的方法如何设计呢privatevoidchange<T>(Tcontrol,stringstr)这样么?如何设置他得Text属性呢
解决方案十:
我这个是非泛型委托用法:privatedelegatevoidChangeStatus(Controlctl,stringstr);privatevoidSetText(Controlc,stringstr){c.Text=str;}privatevoidbutton1_Click(objectsender,EventArgse){ChangeStatuscs=newChangeStatus(SetText);cs(textBox1,"hello");cs(statusStrip1,"Howareyou");}