将控件转换成圆形

2023-10-31

有点儿鸡肋的感觉

 

        [System.Runtime.InteropServices.DllImport("gdi32")]
        private static extern IntPtr BeginPath(IntPtr hdc);
        [System.Runtime.InteropServices.DllImport("gdi32")]
        private static extern int SetBkMode(IntPtr hdc, int nBkMode);
        const int TRANSPARENT = 1;
        [System.Runtime.InteropServices.DllImport("gdi32")]
        private static extern IntPtr EndPath(IntPtr hdc);
        [System.Runtime.InteropServices.DllImport("gdi32")]
        private static extern IntPtr PathToRegion(IntPtr hdc);
        [System.Runtime.InteropServices.DllImport("gdi32")]
        private static extern int Ellipse(IntPtr hdc, int x1, int y1, int x2, int y2);
        [System.Runtime.InteropServices.DllImport("user32")]
        private static extern IntPtr SetWindowRgn(IntPtr hwnd, IntPtr hRgn, bool bRedraw);
        [System.Runtime.InteropServices.DllImport("user32")]
        private static extern IntPtr GetDC(IntPtr hwnd);
        /// <summary>
        /// 将控件转为圆形
        /// </summary>
        /// <param name="control">控件名</param> 
        public static void MakeControlToCircle(Control[] control)
        {
            IntPtr dc;
            IntPtr region;
            for (int i = 0; i < control.Length; i++)
            {
                dc = GetDC(control[i].Handle);
                BeginPath(dc);
                SetBkMode(dc, TRANSPARENT);
                Ellipse(dc, 0, 0, control[i].Width - 3, control[i].Height - 2);
                EndPath(dc);
                region = PathToRegion(dc);
                SetWindowRgn(control[i].Handle, region, false);
            }
        }



 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将控件转换成圆形 的相关文章

  • C# winform 捕获全局异常

    using System using System Collections Generic using System Windows Forms using System IO namespace GobalException static
  • winform中进行动态布局

    在某些网页中 xff0c 对有些按钮进行选择后 xff0c 网页中的布局会增加或者减少 xff0c 无论增加还是减少 xff0c 都会按照顺序进行排序 这个效果在winform中也是可以的 1 建立一个winform项目 2 拖动控件后 x
  • C#WinForm

    WinForm 是 Windows Form 的简称 xff0c 是基于 NET Framework 平台的客户端 xff08 PC软件 xff09 开发技术使用 C 编程 C WinForm 编程需要创建Windows窗体应用程序项目 W
  • Winform

    自适应窗口布局 OnLayout 窗口在尺寸变化时 会调用OnLayout方法 所以 在form1 cs文件里重写OnLayout方法即可实现自适应 在OnLayout方法中 我们获取一下窗口的宽度和高度 根据窗口的宽度和高度重新设定控件的
  • winform窗体

    一 winform介绍 WinForm xff0c 是 Net开发平台中对Windows Form的一种称谓 WinForm是窗体应用程序 xff0c 由若干个窗体应用组成 xff0c 基于C S架构 二 winform的使用 xff08
  • Winform的控件学习整理篇

    窗体 窗体是整个WinForm的核心 xff0c 在Windows系统上的每一个界面都可以看作是一个窗体 xff0c 只不过其功能各异而已 新建一个空白的窗体 xff1a 窗体常用属性 xff1a name xff1a 窗体的名称 xff0
  • winform通过https与服务器进行通信

    C 做客户端 xff08 winfrom xff09 是非常方便的 当winfrom通过https与服务器进行通信时 xff0c 可以选择json xml等数据结构封装要传输的数据 下面是以xml封装数据 xff0c 以https与serv
  • winform基础 C#编程

    1 winform应用程序是一种智能客户端技术 xff0c 帮助我们获得信息或者传输信息 2 当后台需要获取前台控件属性 xff0c 需要使用Name属性 visible 指示一个空间是否可见 enabled 指示一个空间是否可用 3 事件
  • log4net(winform)使用方法

    前言 xff1a log4net是 Net下一个非常优秀的开源日志记录组件 log4net记录日志的功能非常强大 它可以将日志分不同的等级 xff0c 以不同的格式 xff0c 输出到不同的媒介 第一步 xff1a 引入组件 xff1a 引
  • 一些好的学习网址

    地址 http chs gotdotnet com quickstart 描述 本站点是微软 NET技术的快速入门网站 我们不必再安装 NET Framework中的快速入门示例程序 直接在网上查看此示例即看 名称 微软官方 NET指导站点
  • winform控件之BindingNavigator

    BindingNavigator控件可以为我们绑定的数据提供一个导航的功能 默认的工具是这个样子的 我们可以根据需求再增加功能 1 BindingNavigator用法 1 1界面布局 界面布局如下 一个BindingNavigator名为
  • WinForm教程(一)App.config等配置文件

    最近又回到用WinForm开发项目 难免少不了跟数据库打交道 平时也会在App config中写连接字串 但没有仔细深究过 当然除了写数据库字串 肯定还能写别的 我们无论在控制台程序还是窗体程序 都会遇见他 乘代码敲累之际 写篇博客平缓下
  • Winform ListView控件用法

    用法一 1直接从工具箱里把ListView拖到控件上 2可在窗体的Load 事件里 写如下代码 设置一些常用属性 listView1 View View Details listView1 LabelEdit true listView1
  • Winform SplitContainer控件可调整大小

    IsSpliterFixed属性设为False FixedPannel属性设为Pannel1 要固定的面板的名称 之后鼠标移动到控件中间的分隔线 就可以调整大小了
  • Winform 登录页面创建和设置

    Winform 登录页面设置 自带的Form1进行改造 更换名字为FrmLogin 简单先不放置容器 直接先托两个TextBox 再放两个lable分别改好名字 设置密码框的textbox的PasswordChar设置为 再拖两个普通的bu
  • WinForm:禁用Panel容器滚动条自动移动位置的功能

    今天遇到了一个问题 描述如下 有一个Panel容器 将AutoScroll属性设置为True 此时Panel容器会在内容过多时自动展示一个滚动条 这个滚动条存在一个缺点 即会随着焦点变化自动滚向焦点位置 如果仅初始化界面时Panel滚动条位
  • WindowsFormsHost控件

    WPF和WinForms是两个不同的UI框架 都是由Microsoft创建的 WPF是WinForms的一个更现代的替代品 WinForms是第一个 NET UI框架 为了在两者之间轻松过渡 Microsoft确保WinForms控件仍然可
  • ListView的视图属性View的Details的时候每一项的旁边老有个小方框,如何去掉?

    ListView有一个CheckBox属性 将其修改为false即可
  • C#桌面应用程序打包

    使用微软的技术开发windows桌面应用程序是很快捷方便的 开发完之后肯定要打包安装才能发布 以前有做过但过长时间没有打包一下子还真有些遗忘 今天专门又重温了一些 干脆写下来算是加深些印象 以后需要时也好有个参考 感觉有很多技术上手都没有太
  • WinForm应用实战开发指南 - 如何开发工作流模块的审批会签操作(二)

    前面文章中 点击这里回顾 gt gt 介绍了请假申请单和报销申请单两个不同的业务表单的流程处理 一个是单表信息 一个包含明细的主从表信息 后者包含了条件流程的处理 在流程审批中 一般还有一种流程处理就是会签的操作 会签处理是几个审批步骤中审

随机推荐

  • 【JS&Html】一些总结

    html里面 监听回车事件 监听回车 若回车按下 执行相应操作 document onkeypress kDown if document layers window captureEvents Event KEYDOWN function
  • 提示工程师:如何高效的向ChatGPT提问对话

    最近ChatGPT真的火出圈了 现在打开知乎 博客 抖音 B站都是这方面的信息 ChatGPT相关的信息铺天盖地的袭转而来 对于这种类似新一轮信息技术革命 作为普通人的我们 该如何做呢 这是我们该思考的 英伟达创始人兼CEO黄仁勋 this
  • 闪回数据库案例

    闪回数据库案例 测试数据 create table sct4 id number 4 name varchar2 20 insert into sct4 values 1 lili insert into sct4 values 2 lil
  • 小孩报数问题

    import java util LinkedList import java util List import java util Scanner public class Main public static void main Str
  • Java笔记-多线程之线程池

    介绍 在前面的文章中 我们使用线程的时候就去创建一个线程 这样实现起来非常简便 但是就会有一个问题 程序启动一个新线程成本是比较高的 因为它涉及到要与操作系统进行交互 而使用线程池可以很好的提高性能 尤其是当程序中要创建大量生存期很短的线程
  • 最萌算法学习,一秒让程序员及其女友都能学会!

    普通程序员 不学算法 也可以成为大神吗 对不起 这个 绝对不可以 可是算法好难啊 看两页书就想睡觉 所以就不学了吗 就一直当普通程序员吗 如果有一本算法书 看着很轻松 又有代码示例 又有讲解 怎么会有那样的书呢 哎呀 最好学了算法人还能变得
  • OC中的copy和mutableCopy

    在OC中 对对象的拷贝可分为深拷贝和浅拷贝 深拷贝 会生成新的指针和新的内存 新的指针指向新开辟的内存空间 并且会将原来的内存中的内容也拷贝过来 浅拷贝 会生成新的指针 但是不会开辟新的内存空间 也不会拷贝原来内存中的内容 新生成的指针会指
  • 程序员的前20个搜索和排序算法面试问题

    大家好 如果您正在准备编程工作面试或正在寻找新工作 那么您知道这不是一个容易的过程 在您职业的任何阶段 您都必须幸运地接到电话并进行第一轮面试 但是在初学者方面 当您寻找第一份工作时就更加困难 这就是为什么您不能只是轻描淡写 您必须准备抓住
  • vue2:Vant底部导航栏记录active,刷新页面记录active的值

    话不多说 直接上代码
  • python ddt数据驱动

    python ddt数据驱动 1 背景 在自动化测试当中 我们通常会将测试数据从测试代码中抽离出来放在单独的文件中 既能减少代码量 也能降低代码的维护成本 通过数据的改变从而驱动自动化测试的执行 接触python自动化测试的第一个框架通常都
  • 模型推理那些事

    模型推理那些事 目前主流的深度学习框架有目前越来越多的深度学习框架 工具集以及定制化硬件使得构建 部署和跨框架管理深度学习越来越复杂 常用的深度学习框架有TensorFlow Pytorch MXNet和CNTK 因为训练最为耗时 所以常使
  • JS的初步了解学习笔记

    js学习笔记 一 初识js 1 什么是js JavaScript是目前web开发中不可缺少的脚本语言 简称js js不需要编译即可运行 运行在客户端 需要通过浏览器来解析执行JavaScript代码 问 Js属于编程语言吗 编程语言分类 前
  • 大数据学习之路,Spark的介绍、部署以及wordcount实例的实现(1)

    Spark简介 什么是Spark Apache Spark是一种多语言引擎 用于在单节点机器或集群上执行数据工程 数据科学和机器学习 Spark的安装 检查 检查HDFS YARN环境 vagary vagary jps 4736 Name
  • 大数据技术——电影推荐系统大数据综合实训项目

    具体文档请参考如下链接 https download csdn net download qq 53142796 87949491https download csdn net download qq 53142796 87949491 h
  • Linux基础——gcc和make

    gcc和make gcc和make是什么 gcc 编译单个程序 编译链接多个程序 make 编译 清除 安装与卸载 函数库 静态函数库 动态函数库 函数库载入 ldconfig ldd 程序验证 gcc和make是什么 gcc是linux标
  • centos7下卸载宝塔面板软件

    切换到su root用户下 service bt stop chkconfig del bt rm f etc init d bt rm rf www server panel 咋一看 好像也不一定要切换到root用户下 更多博客文章请访问
  • C#知识点

    语句 语句是构造所有C 程序的构造块 通常以分号结束语句 一个大括号括起来一系列语句构成的代码块 语句可以声明局部变量或常数 调用方法 创建对象或将值赋予变量 属性或字段 语句包含 选择语句 循环语句 跳转语句 异常处理语句 A 条件语句包
  • VMware12安装CentOS 7详细教程(图文详解)附资源下载

    所需软件 VMware workstation full 12 1 0 3272444 exe CentOS 7 x86 64 DVD 2009 iso 百度网盘下载链接 VMware12下载 https pan baidu com s 1
  • Conda:误解与迷思

    翻译自这里 我试着尽可能简洁 但如果你想要跳过这篇文章 并得到讨论的要点 你可以阅读每个标题以及下面的摘要 神话 1 Conda是一个发行版 不是一个软件包管理器 现实 Conda是一个包管理器 Anaconda是一个发行包 虽然Conda
  • 将控件转换成圆形

    有点儿鸡肋的感觉 System Runtime InteropServices DllImport gdi32 private static extern IntPtr BeginPath IntPtr hdc System Runtime