【C#】WinForm中如何获取一个控件相对于主界面的位置

news2024/11/24 10:03:50

文章目录

  • 前言
  • 一、新建WinForm程序
  • 二、效果与代码
  • 总结


前言

使用button控件的 PointToScreen 方法和Form控件的 PointToClient 方法来获取button1相对于Form边界的位置。具体步骤如下:

  • 获取button1在屏幕上的位置:
Point button1ScreenPos = button1.PointToScreen(Point.Empty);
  • 将button1在屏幕上的位置转换为相对于Form客户区的位置:
Point button1ClientPos = this.PointToClient(button1ScreenPos);

这样, button1ClientPos 就是button1相对于Form客户区的位置了。请注意,这里的 this 是指当前的Form控件。如果您的代码不在Form控件的类中,需要将 this 替换为Form控件的实例。


一、新建WinForm程序

在这里插入图片描述

二、效果与代码

在这里插入图片描述

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApplication4
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            Point button1ScreenPos = button1.PointToScreen(Point.Empty);

            Point button1ClientPos = this.PointToClient(button1ScreenPos);

            MessageBox.Show("button相对于Form1的位置\n  X:" + button1ClientPos.X.ToString() + "Y:" + button1ClientPos.Y.ToString());
        }
    }
}


总结

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/648568.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【TensorRT】TensorRT的环境配置

本文主要记录TensorRT8.6的环境配置过程! 官方文档:NVIDIA TensorRT - NVIDIA Docs TensorRT相关版本的文档: Documentation Archives :: NVIDIA Deep Learning TensorRT Documentation 一 、下载CUDA和cudann CUDA下载:CUDA T…

最近不知道写啥,打算整理点儿关于钱币的文章,也转载点儿别人的技术文章,毕竟,洒家还是干技术滴嘛...

最近开始整理之前陆陆续续买的乱七八糟的东西了,现在一堆东西还乱扔着呢~~ 先整理了一套大五帝钱还有下面这套清五帝。 清五帝钱一套: 27宝泉局顺治通宝,铁壳锈 27.5康熙通宝满汉同 26.5宝泉局雍正通宝 三离划 26(卡)宝云局乾隆通…

Vision Transformer综述 总篇

Vision Transformer综述 1. Transformer简介2. Transformer组成2.1 Self-AttentionMulti-Head Attention(多头注意力) 2.2 Transformer的其他关键概念2.2.1 Feed-Forward Network 前馈网络2.2.2 Residual Connection 残差连接2.2.3 解码器中的最后一层 3…

Go GC:了解便利背后的开销

1. 简介 当今,移动互联网和人工智能的快(越)速(来)发(越)展(卷),对编程语言的高效性和便利性提出了更高的要求。Go作为一门高效、简洁、易于学习的编程语言,受到了越来越多开发者的青睐。 Go语言的垃圾回收机制(Garbage Collectio…

client-go的Indexer三部曲之一:基本功能

关于《client-go的Indexer三部曲》系列 该系列是《client-go实战系列》的子系列文章,共三篇内容,分别从功能、性能、源码三个角度对client-go内部的Indexer组件进行说明,目标是与大家一同学习Indexer,并掌握如何在开发中通过Inde…

EBU5476 Microprocessor System Design 知识点总结_6 Serial Communication

Serial Communication 串口通信,一种发送消息的通信方式。 串,指的是发数据的方式:一位一位串行发,并行是可能有多路通道,每路同时发一个数据,多路同时到达。 串口通信有单工 Simplex,半双工…

基于SpringBoot+Vue的乐校园二手书交易管理系统设计与实现

博主介绍: 大家好,我是一名在Java圈混迹十余年的程序员,精通Java编程语言,同时也熟练掌握微信小程序、Python和Android等技术,能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架下…

35. 应用监控【监控端点健康信息】

1、展示健康信息详情 开发者可以通过查看健康信息来获取应用的运行数据,进而提早发现应用问题,提早解决, 免造成损失。默认情况下开发者只能获取 status 信息(见图 1 ),这是因为 detail 信息默认不显示&…

【Java常见面试题】Spring篇

导航: 【黑马Java笔记踩坑汇总】JavaSEJavaWebSSMSpringBoot瑞吉外卖SpringCloud黑马旅游谷粒商城学成在线常见面试题 目录 1、简单介绍Spring 2、说说你对IOC的理解 3、说说你对AOP的理解 4、说说Bean的生命周期 5、说说循环依赖和三级缓存 6、说说Bean的几种…

DataV图表-排名轮播表自定义

DataV图表-排名轮播表自定义数据大屏可视化 场景:需要计算根据分数不同柱子的颜色不同 低于60分变成为橙色柱子 一开始使用的是 dv-scroll-ranking-board 这个不可以自定义颜色和属性 我们可以更改 dv-scroll-board 样式来实现 排名轮播表 安装 data-view npm ins…

如何使用Leangoo领歌管理敏捷缺陷

缺陷管理通常关注如下几个方面: 1. 缺陷的处理速度 2. 缺陷处理的状态 3. 缺陷的分布 4. 缺陷产生的原因 使用​​​​​​​Leangoo领歌敏捷工具​​​​​​​我们可以对缺陷进行可视化的管理,方便我们对缺陷的处理进展、负责人、当前状态、分布情…

『 MySQL篇 』:MySQL 锁机制介绍

目录 一. 概述 二. 全局锁 三 . 表级锁 三. 行级锁 一. 概述 锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的计算资源(CPU、RAM、I/O)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据…

三菱FX5U通讯、定位、伺服32讲

三菱FX5U系列(现在已经升级改成为MELSEC iQ-F系列)PLC的CPU模块中内置了能够支持各种控制的优异功能,全系标配Ethernet端口、RS-485端口、SD存储卡槽。Ethernet端口可支持CC-Link IE现场网络Basic,因此能连接多种多样的设备。 第一…

eChart折线图动态特效和隔几秒高亮特效

示例: 说明: 因为现在公司经常要做大屏可视化特效,没办法,只能让图尽量动起来(之前开会挨叼了,说俺们深圳做的,不能比西安那些人做的差。。。) 主要代码: 折线图的滚呀滚…

基于Hexo和Butterfly创建个人技术博客,(7) 配置butterfly主题搭建博客网站主体UI框架

Butterfly官方网站,请 点击进入。 本文面向使用 butterfly theme 的用户, 主题安装方法可查看基于Hexo和Butterfly创建个人技术博客,(1) 初始化博客站点 这章内容。 一、概述 1、什么是theme? Hexo可以认为是一个基础框架,主要提供渲染和插…

平行云——开启通往元宇宙的通道

元宇宙是平行于真实世界的虚拟世界,是新一代互联网。具有真三维、可交互、可沉浸特性的XR,是构建元宇宙的终极数字媒体形态。如何打破XR终端设备与XR内容之间的紧耦合,实现任意平台、任意终端的线上访问,Cloud XR是其必由之路&…

Diffie-Hellman Key Agreement Protocol 资源管理错误漏洞(CVE-2002-20001)

详细描述: Diffie-Hellman Key Agreement Protocol是一种密钥协商协议。它最初在 Diffie 和 Hellman 关于公钥密码学的开创性论文中有所描述。该密钥协商协议允许 Alice 和 Bob 交换公钥值,并根据这些值和他们自己对应的私钥的知识,安全地计算共享密钥K…

C语言柔型数组

何为柔性数组 所谓柔性数组,是C语言中的一个概念,也叫零长数组。顾名思义,这个数组的长度是不固定的,当没有值时,它的sizeof长度为0。 我们一般这样定义一个柔性数组: struct buffer_t {int len;char buf…

FasterTransformer 002: cuda调试env

VSCODE ENV cmake NVIDIA Nsight Systems 当我们装好了CUDA的时候,其实在图形界面下已经装好了一个叫“nsight”的编译器,我们可以直接用终端打开这个编译器,然后写好程序直接编译然后debug就可以了。WINDOWS NVIDIA Nsight Systems 入门及…

【ARM AMBA APB 入门 1 -- APB总线介绍】

文章目录 APB 总线历史1.1 APB 总线介绍1.1.1 APB 使用场景1.1.2 APB 信号列表1.1.3 APB 状态机 1.2 APB 传输时序1.2.1 APB 写传输时序1.2.1.1 Write transfer with no wait states1.2.1.2 Write transfer with wait states 1.2.2 APB 读时序1.2.2.1 Read transfer with no wa…