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

文章目录

  • 前言
  • 一、新建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程序

【C#】WinForm中如何获取一个控件相对于主界面的位置_第1张图片

二、效果与代码

【C#】WinForm中如何获取一个控件相对于主界面的位置_第2张图片

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());
        }
    }
}


总结

你可能感兴趣的:(#,C#,c#,开发语言)