Winform中控件,鼠标坐标位置计算

Winform中获得鼠标位置的 (是鼠标到屏幕左上角的位置):

pt = Cursor.Position;

获得控件距屏幕位置(是控件到屏幕左上角位置)

PointToScreen(this.drawingPanel.Location

获得控件距离Form窗体位置:

this.drawingPanel.Location

这里需注意鼠标的位置是到屏幕左上角距离,而不是到Form窗体的距离,这里取部分代码截图

//滑动前鼠标距离Panel左上角位置距离                
SizeF screenMouseToPanel = (Size)pt - (Size)PointToScreen(this.drawingPanel.Location);
//滑动前鼠标距离panel左上角占比                
double mouseInPanelXPercent = screenMouseToPanel.Width / this.drawingPanel.Width;
double mouseInPanelYPercent = screenMouseToPanel.Height / this.drawingPanel.Height;
时间: 2024-10-27 16:41:01

Winform中控件,鼠标坐标位置计算的相关文章

MFC中状态栏显示鼠标坐标位置

原文:MFC中状态栏显示鼠标坐标位置,蝈蝈 1,利用MFC向导创建一个应用工程ewq. 2,打开ResourceView,右击Menu菜单,插入Menu,在空白处双击,Caption中填入Point. 3,为Point设置下拉菜单,ID为ID_INDICATOR_POINT:Caption为point:Prompt为X:XXXX,Y:YYYY. 4,打开MainFrm.cpp,在indicators数组中的第二个位置添加ID_INDICATOR_POINT. 5,将MainFrm中的成员变量m_

C#中使用多线程访问Winform中控件的若干问题

我们在做winform应用的时候,大部分情况下都会碰到使用多线程控制界面上控件信息的问题.然而我们并不能用传统方法来做这个问题,下面我将详细的介绍. 首先来看传统方法: public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { Thread thread = new Thread(Thread

关于Winform中控件的跨线程访问

闲着没事想起来用winform做一个随机的抽号程序,咋看来这么个东西其实并不难,不过对于一个菜鸟来说其实并不简单!尤其是对于多线程不是特别熟悉的新手来说. 首先,界面比较简单winform,(图片上传好麻烦~~!) 既然是随机抽取号码,就得有随机数(其实关键不在这里,图省事就random了) 可是在用到多线程的时候问题就出现了: 无法跨线程访问label控件,无法修改label的text. 网上找了很多资料,感觉例子搞得难以理解,遂自己撸起.... 1.有人这么写: // Control.Che

js获取鼠标坐标位置兼容多个浏览器

这个看似简单的获取坐标功能,可是已经花费我一天时间了,白天一直搜索js获取坐标,找了很多很多,一一检验,结果出现不兼容.真的够烦躁了,但是事情还是要继续,要完成,回来又继续实践,搜索,反复操作,发现自己好多不会呀,特别是jquery自定义方法(函数),根本就不会,很欠缺基础,心里暗暗下决心,弄完这个好好学习一下js,不然老是卡在这方面.时间虽然已经过去很久了,但我还是没有放弃,想想换个关键词搜索一下,是不是可以找到我想要的.搜索“js获取坐标兼容ie8”,一下子出现后几条,于是挑选一个实践,改造

Winform 中控件图像导出

在Winform中,要将一个控件的显示内容导出为bitmap图像,可以通过如下两种方式: 1. 利用控件本身的DrawToBitmap方法 UserControl chartContainPanel = new UserControl(); Bitmap map = new Bitmap(chartContainPanel.Width, chartContainPanel.Height); chartContainPanel.DrawToBitmap(map, chartContainPanel

winform 控件处在中间位置

一直不明白,怎么让多个控件处在中间,随着窗体的放大也能处在中间, 方法,把所有的控件都放在一个panel上,设置panel的   Anchor  属性, Top, Bottom, Left, Right  都取消, 属性显示:None 这样的话就能达到处在中间位置了,

c# asp.net 鼠标改变控件坐标位置,更改控件坐标,注册表保存读取,打印,查找局域网内打印机等等收集

界面虽然被我弄的很难看,但功能还可以 里边注册表的路径自己设置一下,或者加一个创建注册表的语句,不然会报错 前台: Html代码   <%@ Page Language="C#" AutoEventWireup="true"  CodeFile="FPSZ.aspx.cs" Inherits="_Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML

dom 鼠标事件中的坐标位置

1. 客户区坐标位置 鼠标事件都是在浏览器视口中的特定位置上发生的.这个位置信息保存在事件对象的 clientX 和 clientY 属性中.所有浏览器都支持这两个属性,它们的值表示事件发生时鼠标指针在视口中的水平 和垂直坐标.这些值中不包括页面滚动的距离,因此这个位置并不表示鼠标在页面上的位置. 2. 页面坐标位置 通过客户区坐标能够知道鼠标是在视口中什么位置发生的,而页面坐标通过事件对象的 pageX 和 pageY 属性,能告诉你事件是在页面中的什么位置发生的.换句话说,这两个属性表示鼠标

获取鼠标坐标并且根据鼠标位置不同弹出不同内容

获取鼠标坐标,并且根据鼠标所在div弹出不同内容: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <head