让普通控件拥有左键移动窗体的功能

如题,代码如下:

        /// <summary>设置可以鼠标左键让窗体移动的控件
        /// </summary>
        /// <param name="form">待移动的窗体,通常是设置了FormBorderStyle = FormBorderStyle.None的窗体</param>
        /// <param name="control">能控制窗体左键移动的控件</param>
        public static void SetMoveFormControl(Form form, Control control)
        {
            control.MouseDown += (s, e) =>
            {
                ReleaseCapture();
                SendMessageA((int)form.Handle, 0xa1, 2, 0);
            };
        }
        [DllImport("user32.dll")]
        private static extern int ReleaseCapture();
        [DllImport("user32.dll")]
        private static extern int SendMessageA(int hwnd, int wMsg, int wParam, int lParam);

  

时间: 2024-10-25 15:55:04

让普通控件拥有左键移动窗体的功能的相关文章

wpf事件绑定,比如一个控件的左键按下事件

<i:Interaction.Triggers> <i:EventTrigger EventName="MouseLeftButtonDown"> <i:InvokeCommandAction Command="{Binding Cmd,RelativeSource={RelativeSource AncestorType=Window}}" /> </i:EventTrigger> </i:Interactio

.Net的Oracle数据库ORM控件dotConnect for Oracle下载地址及功能详解

原文来自龙博方案网http://www.fanganwang.com/product/1330转载请注明出处 dotConnect for Oracle完全基于ADO.NET方法,因此您完全可以采用标准ADO.NET数据提供的方法来使用它.是一款为Microsoft .NET Framework提供直接Oracle数据库连接的数据发生器控件. 具体功能: 无需Oracle客户端,采用直接模式提供数据库连接 100%代码管理 具有高表现性能 支持Oracle 10g, 9i, 8i 和 8.0,包

ListView控件的Insert、Edit和Delete功能(第一部分)

摘自:http://blog.ashchan.com/archive/2007/08/28/listview-control-insert-edit-amp-delete-part-1aspx/ ListView是ASP.NET 3.5新提供的一个控件,它支持GridView类似的功能,并将HTML渲染的责任交由使用者来把控,而这正是GridView的一大劣势(它生成的乱七八糟的HTML输出,即使通过CSS Friendly Control Adapters来净化,也还是让人头痛得不行).使用L

vb.net: 一个用户控件,把它放在窗体中,当拖动它时,窗体也随之移动,这样这个窗体就不需要标题栏来拖动了

首先新建一个用户控件,这个控件中只有一个 label ,其名为: lblDrag,至于其所显示的文本和大小,可以随意设置. 接下来打开其代码界面,输入以下代码: -------------------------------------------------------------------------------------------------' 用户控件,当拖动这个控件时,该控件所属的窗体会被拖动Public Class uc_dagrLabelToMove Private isDr

iOS中如何让TextView和TextField控件支持return键收起输入法

TextView和TextField控件是iOS中负责接收用户输入的控件,那当用户输入完成时怎么收起面板呢? 1.TextView和TextField控件获得焦点之后的第一反应就是弹出输入法面板: 2.让TextView和TextField失去焦点的方法是调用resignFirstResponder. 3.在TextView(shouldChangeTextInRange)和TextField(shouldReturn)方法中实现.

使用两个 Windows 窗体 DataGridView 控件创建一个主/从窗体

使用 DataGridView 控件的一种最常见方案是"主/详细信息"窗体,这样的窗体可显示两个数据库表之间的父/子关系.如果选择主表中的行,将导致以相应的子数据来更新详细信息表. 主/详细信息窗体很容易实现,这需要使用 DataGridView 控件和 BindingSource 组件之间的交互.在本演练中,将使用两个 DataGridView 控件和两个 BindingSource 组件来生成窗体.窗体将显示 Northwind SQL Server 示例数据库中的两个相关表:Cu

SYRefresh 一款简洁易用的刷新控件 支持tableview,collectionview水平垂直刷新功能

SYRefresh 地址: https://github.com/shushaoyong/SYRefresh 一款简洁易用的刷新控件 示例程序:   默认刷新控件使用方法: //添加头部刷新控件 ScrollView.sy_header = [SYRefreshView refreshWithHeight:40 isFooter:NO completionBlock:^{ dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2 *

ListView控件的Insert、Edit和Delete功能(第二部分)

本系列文章将通过一个简单的实例,结合我自己使用ListView的情况,展示如何用ASP.NET 3.5 ListView控件进行基本的Insert.Edit和Delete操作. 系统要求: Windows XP SP2 or higher VS2008 Beta 2 or Visual Web Developer 2008 Express Edition Beta 2 在本系列的第一篇中,介绍了如何实现ListView的Insert功能.本篇介绍如何实现Edit功能. 实现Edit功能 在Lis

c# chart控件添加边界值线条以及扩展性功能

最近一致在开发能源平台,平台中很多能耗数据都是通过使用微软的chart控件进行图形呈现的.考虑到要给用户更为直观的呈现效果,需要对原有控件的功能进行扩展.微软chart控件没有第三方样chart样式炫酷,但是胜在可定制性强,中文手册详细,很多效果能够自己写出来. 主要实现功能:1.最大值,最小值,平均值展示   2.鼠标移动到数据点绘制竖线,用tooltip的方式展示数据 最终呈现效果如图: 解决方案: (1)最大值,最小值,平均值呈现 之前在网上找了好久都没有想要的效果,第三方控件往往都能直接