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

2024-06-11 21:32

本文主要是介绍c#中获取控件窗体句柄,获取窗体等的一些操作,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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#中获取控件窗体句柄,获取窗体等的一些操作的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1052330

相关文章

C#中的 Dictionary常用操作

《C#中的Dictionary常用操作》C#中的DictionaryTKey,TValue是用于存储键值对集合的泛型类,允许通过键快速检索值,并且具有唯一键、动态大小和无序集合的特性,常用操作包括添... 目录基本概念Dictionary的基本结构Dictionary的主要特性Dictionary的常用操作

C# winform操作CSV格式文件

《C#winform操作CSV格式文件》这篇文章主要为大家详细介绍了C#在winform中的表格操作CSV格式文件的相关实例,文中的示例代码讲解详细,感兴趣的小伙伴可以参考一下... 目录实例一实例效果实现代码效果展示实例二实例效果完整代码实例一实例效果当在winform界面中点击读取按钮时 将csv中

C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)

《C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)》本文主要介绍了C#集成DeepSeek模型实现AI私有化的方法,包括搭建基础环境,如安装Ollama和下载DeepS... 目录前言搭建基础环境1、安装 Ollama2、下载 DeepSeek R1 模型客户端 ChatBo

golang获取prometheus数据(prometheus/client_golang包)

《golang获取prometheus数据(prometheus/client_golang包)》本文主要介绍了使用Go语言的prometheus/client_golang包来获取Prometheu... 目录1. 创建链接1.1 语法1.2 完整示例2. 简单查询2.1 语法2.2 完整示例3. 范围值

javaScript在表单提交时获取表单数据的示例代码

《javaScript在表单提交时获取表单数据的示例代码》本文介绍了五种在JavaScript中获取表单数据的方法:使用FormData对象、手动提取表单数据、使用querySelector获取单个字... 方法 1:使用 FormData 对象FormData 是一个方便的内置对象,用于获取表单中的键值

C# string转unicode字符的实现

《C#string转unicode字符的实现》本文主要介绍了C#string转unicode字符的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随... 目录1. 获取字符串中每个字符的 Unicode 值示例代码:输出:2. 将 Unicode 值格式化

Python调用Orator ORM进行数据库操作

《Python调用OratorORM进行数据库操作》OratorORM是一个功能丰富且灵活的PythonORM库,旨在简化数据库操作,它支持多种数据库并提供了简洁且直观的API,下面我们就... 目录Orator ORM 主要特点安装使用示例总结Orator ORM 是一个功能丰富且灵活的 python O

C#中读取XML文件的四种常用方法

《C#中读取XML文件的四种常用方法》Xml是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具,下面我们就来看看C#中读取XML文件的方法都有哪些吧... 目录XML简介格式C#读取XML文件方法使用XmlDocument使用XmlTextReader/XmlTextWr

python使用fastapi实现多语言国际化的操作指南

《python使用fastapi实现多语言国际化的操作指南》本文介绍了使用Python和FastAPI实现多语言国际化的操作指南,包括多语言架构技术栈、翻译管理、前端本地化、语言切换机制以及常见陷阱和... 目录多语言国际化实现指南项目多语言架构技术栈目录结构翻译工作流1. 翻译数据存储2. 翻译生成脚本

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型的操作流程

《0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeekR1模型的操作流程》DeepSeekR1模型凭借其强大的自然语言处理能力,在未来具有广阔的应用前景,有望在多个领域发... 目录0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型,3步搞定一个应