1.Control.Handle 就是获取控件绑定到的窗口句柄。   

2.control.IsHandleCreated  控件是否有与其关联的句柄

3.WinForm自定义函数FindControl实现按名称查找控件

public static Control FindControl(Control parentControl, string findCtrlName)

{

  Control _findedControl = null;

  if (!string.IsNullOrEmpty(findCtrlName) && parentControl != null)

  {

 foreach (Control ctrl in parentControl.Controls)

 {

   if (ctrl.Name.Equals(findCtrlName))

   {

 _findedControl = ctrl;

 break;

   }

 }

  }

  return _findedControl;

}

4.判断窗体是否已打开

方式1:

foreach (Form frm in Application.OpenForms)
 {
    if (frm is youForm)
    {
       youForm.Activate();
       youForm.WindowState = FormWindowState.Normal;
       return;
     }
 }
 Form youForm = new Form();
 youForm.Show();

方式2:

Form1 F1 ;
 
if(F1 == null || F1.IsDisposed)
{
   F1 = new Form1();
   F1.Show();//未打开,直接打开。
}
else
{
   F1.Activate();//已打开,获得焦点,置顶。
}

5.通过名字寻找窗体

public Form FindForm(string name)

{

    foreach (Form f in Application.OpenForms)

    {

        if (f.Name == name) return f;

    }

    return null;

}

6.以下是代码中创建progressbar的实例

int count = 0;
        private void button4_Click(object sender, EventArgs e)
        {
            Thread th = new Thread(() => {
                Form form = new Form();
                form.Name="myForm";
                form.Width = 200;
                form.Height = 20;
                form.ControlBox = false;
                //form.ShowInTaskbar = false;
                form.StartPosition = FormStartPosition.CenterScreen;
                ProgressBar pb = new ProgressBar();
                pb.Dock = DockStyle.Fill;
                pb.Maximum = 100;
                pb.Minimum = 0;
                pb.Value = count;
                pb.BringToFront();
                pb.Visible = true;
                pb.Parent = form;
                form.ShowDialog();
            
            });
            th.Start();

for (int i = 0; i < 1000;i++ )
            {
                Thread.Sleep(5);
                count = Convert.ToInt32(i * 1.0 / 1000 * (100 - 0) + 0);
              Control control=  FindForm("myForm");
              if (control!=null&&control.Name == "myForm" && control.IsHandleCreated)
                {
                    control.Invoke(new Action(() => {
                        ProgressBar pb = control.Controls[0] as ProgressBar;
                        pb.Value = count;
                    }));
                   
                }
            }
            th.Abort();
        }
        public Form FindForm(string name)
        {

foreach (Form f in Application.OpenForms)
            {

if (f.Name == name) return f;

}

return null;

}

c#中获取控件窗体句柄,获取窗体等的一些操作相关推荐

  1. javascript如何获取html中的控件,Javascript-dom总结(获取页面控件)

    1. 根据id获取控件 document.getElementById('txt2') 2. 根据name获取一组控件(radiobutton) document.getElementsByName( ...

  2. 【Android】获取控件的宽和高

    有时候我们须要在Activity的时候获取控件的宽和高来做一些操作,以下介绍三种获取宽和高的方式: 1. onWindowFocusChanged @Overridepublic void onWin ...

  3. Python调用外部EXE程序遍历窗体及控件并获取控件信息。

    背景 我的工作中经常手工运行一个windows程序(密码生成工具),获取该程序的计算结果,手工填到登录表单的中.该程序非常久远,已无人维护.根据凡是重复2次以上的工作都应该自动化原则,那么我来写个自动 ...

  4. QT5 获取窗口、系统屏幕大小尺寸信息,Qt 获取控件位置坐标,屏幕坐标,相对父窗体坐标

    一.QT5 获取窗口大小尺寸信息 QT窗口尺寸,窗口大小和大小改变引起的事件 QResizeEvent. //窗口左上角的位置(含边框)qDebug() << this->frame ...

  5. treeview获取选中 vb_VB中TreeView控件实例(转)

    [摘要:]在实际开发中,许多人不喜欢使用TreeView,主要是由于默认的TreeView是"只读"的,不支持添加.删除.编辑.调整节点位置等操作.本文通过一个TVEdit工程说明 ...

  6. android自定义view获取控件,android 自定义控件View在Activity中使用findByViewId得到结果为null...

    转载:http://blog.csdn.net/xiabing082/article/details/48781489 1.  大家常常自定义view,,然后在xml 中添加该view 组件..如果在 ...

  7. .net dataGridView当鼠标经过时当前行背景色变色;然后【给GridView增加单击行事件,并获取单击行的数据填充到页面中的控件中】...

    1.首先在前台dataGridview属性中增加onRowDataBound属性事件 2.然后在后台Observing_RowDataBound事件中增加代码 protected void Obser ...

  8. Asp.net 2.0 中获取控件输出的Html代码 (转)

    将Asp.net 控件的呈现html获取,在不少场合会用到,比如生成静态页时 以下代码选自 Asp.net 2.0 高级编程 转自:Asp.net 2.0 中获取控件输出的Html代码 public  ...

  9. android 获取控件在屏幕中的坐标

    今天,简单讲讲android如何获取控件在屏幕中的坐标. 这个其实也很简单,但是昨天做一个功能时,需要功能控件的坐标做一些逻辑操作时,居然不知道怎么做.所以在网上查找了资料后,解决了这个问题.这里记录 ...

最新文章

  1. android播放器:mediaplayer
  2. JavaScript函数大全
  3. linux下的代码比较工具下载,linux下的代码工具比较
  4. Android locksettings/gatekeeper代码导读
  5. python跟易语言的爬虫_新人Python,第一只爬虫,,我就只会re.findall,你咬我?
  6. STL源码剖析 slist单向链表概述
  7. java如何脱离ide运行_如何脱离IDE使用自己的jar包?
  8. javascript -- 判断是否为某个数据类型
  9. mysql的命令行常用命令_MySQL Command Line[mysql命令行常用命令]
  10. java opencv去除干扰线_电子产品硬件研发—提高抗干扰性能的常用方法
  11. 大数据入门:Hadoop大数据开发核心讲解
  12. macos复制粘贴快捷键 快速_Mac复制粘贴快捷键怎么修改 Mac复制粘贴快捷键修改步骤...
  13. 微信公众号登陆、模板发送、access_token获取 PHP代码
  14. 【供应链架构day2】美团收单供应链系统的演进之路
  15. 关于Mysql8.0时区表问题解决
  16. 【每日蓝桥】2、一三年省赛Java组真题“组素数”
  17. 计算机一级ps考级知识,Photoshop等级考试一级大纲
  18. STM32移植STemwin
  19. python agg
  20. 派斯宝多尼斯荣登纳斯达克大屏 闪耀国际舞台

热门文章

  1. php网站后台无法退出,zblog“网站关闭”后进入不了后台的解决方法
  2. mysql 表 地图_报表中的地图怎么做?
  3. linux e32,linux PXE无人值守安装出现 PXE-E32:TFTP OPen timeout的解
  4. mysql 免安装 配置_图解MySQL5.7.20免安装版配置方法
  5. 的训练过程_指外翻的人在训练的过程中,要不要拉伸收肌?
  6. 计算机组成与维修考试试题,期末考试试题计算机组成与维修.doc
  7. 编写jmeter测试用例_JMeter 编写接口测试用例遇到的问题及解决
  8. 英雄会被表彰,这些技术与代码也将被历史铭记
  9. 带你全面认识 Linux
  10. 我把公司当家,老板当爹,结局...