C#實(shí)現(xiàn)根據(jù)指定容器和控件名字獲得控件的方法
本文所述為C#實(shí)現(xiàn)根據(jù)指定容器和控件名字獲得控件的方法,在進(jìn)行C#應(yīng)用程序設(shè)計(jì)時(shí)有一定的借鑒價(jià)值。分享給大家供大家參考借鑒。具體實(shí)現(xiàn)方法如下:
功能代碼如下:
/// <summary>
/// 根據(jù)指定容器和控件名字,獲得控件
/// </summary>
/// <param name="obj">容器</param>
/// <param name="strControlName">控件名字</param>
/// <returns>控件</returns>
private object GetControlInstance(object obj,string strControlName)
{
IEnumerator Controls = null;//所有控件
Control c = null;//當(dāng)前控件
Object cResult=null;//查找結(jié)果
if(obj.GetType() == this.GetType())//窗體
{
Controls = this.Controls.GetEnumerator();
}
else//控件
{
Controls = ((Control)obj).Controls.GetEnumerator();
}
while(Controls.MoveNext())//遍歷操作
{
c = (Control)Controls.Current;//當(dāng)前控件
if(c.HasChildren)//當(dāng)前控件是個(gè)容器
{
cResult = GetControlInstance(c,strControlName);//遞歸查找
if(cResult==null)//當(dāng)前容器中沒有,跳出,繼續(xù)查找
continue;
else//找到控件,返回
return cResult;
}
else if(c.Name == strControlName)//不是容器,同時(shí)找到控件,返回
{
return c;
}
}
return null;//控件不存在
}
示例如下:
((Button) GetControlInstance(this,"button7")).BackColor = Color.Red; ((Button) GetControlInstance(this.groupBox4,"button7")).PerformClick();
希望本文所述實(shí)例對大家C#程序設(shè)計(jì)有所幫助。
相關(guān)文章
基于c# Task自己動(dòng)手寫個(gè)異步IO函數(shù)
這篇文章主要介紹了如何基于c# Task自己動(dòng)手寫個(gè)異步IO函數(shù),幫助大家更好的理解和學(xué)習(xí)使用c#,感興趣的朋友可以了解下2021-03-03
WCF基礎(chǔ)介紹并創(chuàng)建簡單應(yīng)用程序
這篇文章介紹了WCF基礎(chǔ)并創(chuàng)建簡單WCF應(yīng)用程序,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-01-01
C#基礎(chǔ):Equals()與運(yùn)算符==的區(qū)別分析
本篇文章是對c#中的Equals()與運(yùn)算符==的區(qū)別進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05
C#判斷指定驅(qū)動(dòng)器是否是Fat分區(qū)格式的方法
這篇文章主要介紹了C#判斷指定驅(qū)動(dòng)器是否是Fat分區(qū)格式的方法,涉及C#中DriveFormat屬性的使用技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04
詳解C#如何利用爬蟲技術(shù)實(shí)現(xiàn)快捷租房
做為一個(gè)碼農(nóng),大部分都集中在一二線城市,所以租房也就無可避免,面對如今五花八門的租房信息,往往很難找到合適的房子。本文教你如何利用爬蟲技術(shù)實(shí)現(xiàn)快捷租房,感興趣的可以了解一下2022-09-09
unity android設(shè)備上查看log輸出方式
這篇文章主要介紹了unity android設(shè)備上查看log輸出方式,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-04-04

