随心所欲移动Panel
C# Winform编程时,有时需要在程序执行时,使窗体中的panel控件可以随意的移动,这时可以采用下面这种方法:
主要包括以下两步:
@1:给panel(此处以 RealGLPanel为例说明)添加MouseDown和MouseMove事件处理函数,如此处对应为: RealGLPanel_MouseMove
和 RealGLPanel_MouseDown
@2:编写两个函数的实现代码(真的不长,不要怕)
具体的代码实现如下:
private void RealGLPanel_MouseDown(object sender, MouseEventArgs e)
{
oldRealGLPLPt.X = this.RealGLPanel.Location.X;
oldRealGLPLPt.Y = this.RealGLPanel.Location.Y; RealGLPLPt.X = Cursor.Position.X;
RealGLPLPt.Y = Cursor.Position.Y;
this.RealGLPanel.BringToFront();
} private void RealGLPanel_MouseMove(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
int tx, ty;
tx = Cursor.Position.X - RealGLPLPt.X;
ty = Cursor.Position.Y - RealGLPLPt.Y; if (tx != || ty != )
{
int tempx = oldRealGLPLPt.X + tx;
int tempy = oldRealGLPLPt.Y + ty; //此处可以添加对tempx和tempy的限定的代码 this.RealGLPanel.Location = new System.Drawing.Point(tempx, tempy);
}
this.RealGLPanel.BringToFront();
}
}
随心所欲移动Panel的更多相关文章
- Chrome Developer Tools:Timeline Panel说明
一.Timeline panel 概况 Timeline工具栏可以详细检测出Web应用在加载过程中,时间花费情况的概览.这些应用包括下载资源,处理DOM事件, 页面布局渲染或者向屏幕绘制元素. 如下图 ...
- Ubuntu[1]安装Vesta Control Panel
参考:http://www.5013.org/archives/819 1)登录 ssh ubuntu@139.199.9.173 ubuntu@139.199.9.173's password: 重 ...
- 本地数据Store。Cookie,Session,Cache的理解。Timer类主要用于定时性、周期性任务 的触发。刷新Store,Panel
本地数据Store var monthStore = Ext.create('Ext.data.Store', { storeId : 'monthStore', autoLoad : false, ...
- Delphi控件之---通过编码学习TStringGrid(也会涉及到Panel控件,还有对Object Inspector的控件Events的介绍
我是参考了万一的博客里面的关于TStringGrid学习的教程,但是我也结合自己的实际操作和理解,加入了一些个人的补充,至少对我有用! 学用TStringGrid之——ColCount.RowCoun ...
- 我的面板我做主 -- 淘宝UWP中自定义Panel的实现
在Windows10 UWP开发平台上内置的XMAL布局面板包括RelativePanel.StackPanel.Grid.VariableSizedWrapGrid 和 Canvas.在开发淘宝UW ...
- Extjs Panel
刚学习Extjs @{ Layout = "~/_SiteLayout.cshtml"; Page.Title = "欢迎访问我的网站!"; } @{ stri ...
- Chrome Developer Tools:Network Panel说明
官方资料:Chrome Developer Tools: Network Panel 一.chrome Developer Tools:Network Panel 从网络面板中可以获取很多有用信息,如 ...
- panel的展开,关闭的一种应用。
js: <script type="text/javascript"> $('#p2').panel({ title: 'panel1', closable: fals ...
- ASP.Net 在Update Panel局部刷新后 重新绑定JS方法
我们知道Asp.Net中的Update Panel可以完成页面的局部刷新(实质上是Ajax),但是局部刷新完后,此区域的控件上所绑定的JS方法就会失效,因为我们用如下方法来重新绑定. var prm ...
随机推荐
- 设计模式之迪米特原则(LoD)
迪米特原则也叫作最少知识原则,也就是:一个对象应该对其他对象有最少的了解.也就是说一个对象应该尽量的保证高内聚性,不应该对外有太多的public方法.
- gcc -M -MM -MQ -MF -MT -MD
静态模式规则对一个较大工程的管理非常有用.它可以对整个工程的同一类文件的重建规则进行一次定义,而实现对整个工程中此类文件指定相同的重建规则.比如,可以用来描述整个工程中所有的.o 文件的依赖规则和编译 ...
- Python内置函数之callable()
callable()用来检测对象是否可调用的. callable()返回值为True或者False. 下面看看例子 : >>> callable() False >>&g ...
- 使用wget工具抓取网页和图片 成功尝试
使用wget工具抓取网页和图片 发表于1年前(2014-12-17 11:29) 阅读(2471) | 评论(14) 85人收藏此文章, 我要收藏 赞7 wget 网页抓取 图片抓取 目录[-] ...
- java编译器特性
1.当一个表达式两边都是字面量,则编译过程中就会进行计算,并将结果生成在表达式的位置,以节省运算效率: ps:jvm认为只有是字面量时,才会对比常量池中内容:而如果是new的新对象为不同对象. 例1: ...
- java.lang.NoClassDefFoundError: org/junit/rules/TestRule
错误原因:通过定位发现是找不到TestRule这个类,检查项目引用的Junit版本为4.7,发现TestRule是在Junit版本4.10后添加的新特性 解决方法:把junit版本由4.7改成4.10
- Extjs中获取getEl获取undefined的问题
一定注意: getEl()方法只有在panel.show()之后才会有值.在hide()的时候没有该对象. 也就是说如果要操作Ext.dom.Element对象必须让对象先显示出来.
- 【原创】菜鸟版Android 笔记2- Activity
1. Activity介绍 Acitivity在安卓开发中非常重要,他很像Java桌面开发中的JFrame,在MVC模式中属于Controller,一般一个应用程序通常由多个松耦合关系的activit ...
- SDUTOJ 2772 KMP简单应用
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvUl9NaXNheWE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA ...
- 目前国际上所用云计算平台IaaS、PaaS、SaaS简介
随着云计算这个概念越来越为人所熟知,企业对云计算的重视程度也在日趋加深.这不仅是一种潮流,更体现了一种需求——数字化.现代化.科技化的整体需求.如今市场上云计算的运营商更是风起云涌,服务种类更是丰富繁 ...