最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C# WinForm遍歷窗體控件的3種方法

 更新時間:2021年04月12日 08:41:13   作者:五維思考  
這篇文章主要介紹了C# WinForm遍歷窗體控件的3種方法,幫助大家更好的理解和使用c#,感興趣的朋友可以了解下

1.循環(huán)遍歷

private void GetControls(Control fatherControl)
{
    Control.ControlCollection sonControls = fatherControl.Controls;
    foreach (Control control in sonControls)
    {
        listBox1.Items.Add(control.Name);
    }
}

結(jié)果:能獲取到Panel、GroupBox、TabControl等控件
問題:Panel等控件上面的子控件獲取不到

2.遞歸遍歷

private void GetControls(Control fatherControl)
{
    Control.ControlCollection sonControls = fatherControl.Controls;
    foreach (Control control in sonControls)
    {
        listBox1.Items.Add(control.Name);
        if (control.Controls != null)
        {
            GetControls(control);
        }
    }
}

結(jié)果:能獲取到絕大多數(shù)控件
問題:Timer、ContextMenuStrip等控件獲取不到

3.使用反射

private void GetControls(Control fatherControl)
{
    System.Reflection.FieldInfo[] fieldInfo = this.GetType().GetFields(BindingFlags.NonPublic | BindingFlags.Instance);
    for (int i = 0; i < fieldInfo.Length; i++)
    {
        listBox1.Items.Add(fieldInfo[i].Name);
    }
}

結(jié)果:所有控件都被獲取到了

DevExpress控件無法使用this.Controls進(jìn)行遍歷,只能通過反射的方法獲得,如下代碼:

public void SearchBarManager()
{
    Type FormType = this.GetType();
    FieldInfo[] fi = FormType.GetFields(BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Public);
    foreach (FieldInfo info in fi)
    {
        if (info.FieldType == typeof(DevExpress.XtraBars.BarManager))
        {
            DevExpress.XtraBars.BarManager bar = (info.GetValue(this)) as DevExpress.XtraBars.BarManager;
            foreach (DevExpress.XtraBars.BarItem bi in bar.Items)
            {
                MessageBox.Show(bi.Name);
            }
        }
    }
}

以上就是C# WinForm遍歷窗體控件的3種方法的詳細(xì)內(nèi)容,更多關(guān)于WinForm遍歷窗體控件的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評論

裕民县| 泾川县| 安国市| 嘉兴市| 香港 | 呼伦贝尔市| 台北市| 新河县| 佛山市| 华池县| 凤台县| 新竹县| 南康市| 白城市| 梧州市| 横山县| 德兴市| 堆龙德庆县| 潞西市| 封丘县| 阿城市| 会宁县| 潮安县| 海盐县| 农安县| 革吉县| 安吉县| 射洪县| 新干县| 石门县| 阿城市| 漯河市| 通州区| 临安市| 涪陵区| 南漳县| 扎赉特旗| 大理市| 读书| 洪洞县| 黑水县|