文章目录
- 前言
- 一、新建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());
}
}
}