C# 创建无边框,任意样式窗体,无边框窗体的移动

界面布局如下:

窗体中添加一个PictureBox控件

有边框窗体

无边框窗体

代码实现:

    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }

        #region 创建无边框,任意样式窗体
        private void Form2_Load(object sender, EventArgs e)
        {
            this.TransparencyKey = Color.White;             //设置默认透明色
            this.BackColor = this.TransparencyKey;          //设置当前窗体的背景色为透明
            this.FormBorderStyle = FormBorderStyle.None;    //隐藏窗体边框
        }
        #endregion

        #region 控制无边框窗体的移动
        //using System.Runtime.InteropServices;
        [DllImport("user32.dll")]
        public static extern bool ReleaseCapture();
        [DllImport("user32.dll")]
        public static extern bool SendMessage(IntPtr hwnd, int wMsg, int wParam, int lParam);

        private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
        {
            //常量
            int WM_SYSCOMMAND = 0x0112;

            //窗体移动
            int SC_MOVE = 0xF010;
            int HTCAPTION = 0x0002;

            ReleaseCapture();
            SendMessage(this.Handle, WM_SYSCOMMAND, SC_MOVE + HTCAPTION, 0);
        }
        ////常量
        //int WM_SYSCOMMAND = 0x0112;
        ////改变窗体大小
        //int WMSZ_LEFT = 0xF001;
        //int WMSZ_RIGHT = 0xF002;
        //int WMSZ_TOP = 0xF003;
        //int WMSZ_TOPLEFT = 0xF004;
        //int WMSZ_TOPRIGHT = 0xF005;
        //int WMSZ_BOTTOM = 0xF006;
        //int WMSZ_BOTTOMLEFT = 0xF007;
        //int WMSZ_BOTTOMRIGHT = 0xF008;
        //ReleaseCapture();
        //SendMessage(this.Handle, WM_SYSCOMMAND, WMSZ_BOTTOM, 0);

        //SendMessage(this.Handle, WM_SYSCOMMAND, WMSZ_TOP, 0);
        #endregion
    }

png图像资源

时间: 2024-11-06 12:31:48

C# 创建无边框,任意样式窗体,无边框窗体的移动的相关文章

无废话ExtJs 入门教程七[登陆窗体Demo:Login]

无废话ExtJs 入门教程七[登陆窗体Demo:Login] extjs技术交流,欢迎加群(201926085) 在这节我们通过前几节讲的内容做一个登陆页面,把前几节讲的内容贯穿一下. 1.代码如下: 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2 &l

delphi Form属性设置 设置可实现窗体无最大化,并且不能拖大拖小

以下设置可实现窗体无最大化,并且不能拖大拖小BorderIcon 设为---biMax[False] biHelp [False]BorderStyle 设为---bsSingle 参考-------------- 可以通过设置窗体的属性以及编程的方法,限制和控制窗体的变化.如让窗体不能最小化.最大化.-----1.通过属性设置方法使用Form的BorderIcon属性,我们可设置窗体是否具有系统菜单(biSystemMenu).最小化按钮(biMinimize).最大化按钮(biMaximiz

c#中创建IOC框架的步骤(无参,Ninject容器)

创建无参的IOC框架 步骤: 1. 一个接口 2. 通过创建一个实体类显示接口 3. 再创建一个类制造构造函数(并将接口作为参数传递),再此类中创建一个无返回值的方法,调用接口里的方法 4. 在Main里面写代码: 1) 用接口new出创建接口实体的类. 2) 把创建构造函数的类名new出来,将1)的对象写入括号中. 3) 调用2)的无返回值方法. 第一步,定义一个接口: namespace NInjectEmail { interface ISendMsg { void SendEmail()

移动窗体(边框设置为None后的窗体)

1 #region 移动窗体(边框设置为None后的窗体) 2 3 /// <summary> 4 /// 重写WndProc方法,实现窗体移动和禁止双击最大化 5 /// </summary> 6 /// <param name="m">Windows 消息</param> 7 protected override void WndProc(ref Message m) 8 { 9 switch (m.Msg) 10 { 11 case

窗体去掉边框后不能拖动的问题

在C# WinForm中,边框不显示就会造成窗体无法拖动的情况,把下边的代码添加上去就可以解决. 1.导入命名空间using System.Runtime.InteropServices;2.输入如下代码 [DllImport("user32.dll")]public static extern bool ReleaseCapture();[DllImport("user32.dll")]public static extern bool SendMessage(I

MFC窗体去边框、置顶、全屏、激活

静态移除长提边框很简单,直接设置"Border"属性为"none"即可 "Maximize Box", "Minimize Box" 设置是否显示 最大化/最小化按钮: "System Menu" 设置 是否显示 关闭按钮: 1. 代码中动态移除窗体边框的方法 DWORD dwStyle = GetStyle(); //等价于GetWindowLong(m_hWnd, GWL_STYLE); DWORD d

公共事件,修改主窗体和子窗体的(主题)样式

主窗体修改主题样式时,同时修改子窗体的主题样式 系统展示效果: 一.项目结构 二.代码分析 SetAllFormStyle 界面对象参数 /// <summary> /// 编写:yj /// 日期:2014-08-14 /// 描述:系统界面参数 /// </summary> public class SetAllFormStyle: System.EventArgs { public C1.Win.C1Ribbon.VisualStyle autoStyle { get; se

[HTML][CSS]table中加边框的样式(所有td都加薄边框)

table中加边框的样式(所有td都加薄边框) <style type="text/css"> .border-table { border-collapse: collapse; border: none; } .border-table td { border: solid #000 1px; } </style> <table id="tt" class="border-table"> <tr>

python Tkinter 基础 创建一行文字的窗体并设置窗体的标题 Label,title

# Tkinter 基础 创建一行文字的窗体并设置窗体的标题 Label,title import tkinter as tk app = tk.Tk() # 实例化一个TK 用于容纳整个GUI程序 app.title("test01") # 设置窗体的标题栏 # 设置label主键 , 显示文本,图标与图片 theLabel = tk.Label(app, text = "这是一个窗口") theLabel.pack() # 自动调节 主键的尺寸与位置 # 窗口的