zoukankan      html  css  js  c++  java
  • WinForm开发中几种找控件的方法

    #region 在当前控件集中查找ToolStripButton
            private static ToolStripButton FindToolStripButton(Form owner, string controlId)
            {
                ToolStripButton result;
                result = null;
                foreach (Control ctl in owner.Controls)
                {
                    if (ctl.GetType() == typeof(System.Windows.Forms.ToolStrip))
                    {
                        ToolStrip ts = ctl as ToolStrip;
                        ToolStripItem[] items = ts.Items.Find(controlId, true);
                        if (items.Length > 0)
                        {
                            result = (ToolStripButton)items[0];
                            return result;
                        }
                    }
                }
                return result;
            }
            #endregion

    //Form中直接找

    Control[] ctls = owner.Controls.Find(dr["ControlName"].ToString(), true);

    //Form的Components中找控件

     ArrayList myList = owner.GetIntfObjects(typeof(IFindContainer));
    for (int i = 0; i < myList.Count; i++)
    {

      if(myList[i] is DataSet)

      {}

    }

    public ArrayList GetIntfObjects(Type intfType)
            {
                ArrayList aRet = new ArrayList();

                ReflectionPermission reflectionPerm1 = new ReflectionPermission(PermissionState.None);
                reflectionPerm1.Flags = ReflectionPermissionFlag.AllFlags;

                if (intfType.IsInterface)
                {
                    Type type = this.GetType();
                    FieldInfo[] myFields = type.GetFields(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.DeclaredOnly);
                    for (int i = 0; i < myFields.Length; i++)
                    {
                        object newobj = myFields[i].GetValue(this);
                        if ((null != newobj) && (null != newobj.GetType().GetInterface(intfType.Name)))
                        {
                            aRet.Add(newobj);
                        }
                    }
                }
                return aRet;
            }

  • 相关阅读:
    FastDFS迁移步骤
    Centos7 单节点安装 FastDFS + FastDHT服务
    CentOS 7.0 上安装和配置 VNC 服务器
    Ubuntu 18.04 安装 Xfce桌面和VNC的方法
    Ubuntu 16.04设置root用户登录图形界面
    Windows批量查找文件
    WIN10打开网络共享文件夹提示0x80004005怎么解决?(转载)
    ack 工具
    win7/win10 未分配磁盘怎样创建扩展分区 也就是逻辑分区(转截)
    [bzoj4842][bzoj1283][Neerc2016]Delight for a Cat/序列_线性规划_费用流
  • 原文地址:https://www.cnblogs.com/jacker1979/p/1716072.html
Copyright © 2011-2022 走看看