`

Winform 去掉 最大化 最小化 关闭按钮 保留左侧图片

    博客分类:
  • C#
 
阅读更多
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Drawing.Drawing2D;
using System.Runtime.InteropServices;

namespace WinDemo
{
    public partial class Form5 : Form
    {
        public Form5()
        {
            InitializeComponent();
        }

        /// <summary>
        /// Button 按钮重绘事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button1_Paint(object sender, PaintEventArgs e)
        {
            GraphicsPath myPath = new GraphicsPath();
            Rectangle rect = new Rectangle(0,0,574,362);//后面2个数据调整窗体大小
            myPath.AddRectangle(rect);
            this.Region = new Region(myPath);
        }

        [DllImport("user32.dll")]
        static extern int ReleaseDC(IntPtr hWnd, IntPtr hDC);

        [DllImport("User32.dll")]

        private static extern IntPtr GetWindowDC(IntPtr hWnd);

        protected override void WndProc(ref System.Windows.Forms.Message m)
        {
            const int WM_NCPAINT = 0x85;
            base.WndProc(ref m);

            if (m.Msg == WM_NCPAINT)
            {

                IntPtr hdc = GetWindowDC(m.HWnd);
                if ((int)hdc != 0)
                {
                    Graphics g = Graphics.FromHdc(hdc);
                    Pen pen1 = new Pen(Color.FromArgb(64,64,64));
                    Pen pen2 = new Pen(Color.FromArgb(128, 128, 128));
                    Pen pen3 = new Pen(Color.FromArgb(212, 208, 200));
                    g.DrawLine(pen1, 573, 0, 573, 360);//最外边
                    g.DrawLine(pen2, 572, 1, 572, 359);//最外边第二条白色
                    g.DrawLine(pen3, 571, 2, 571, 359);
                    g.DrawLine(pen3, 571, 2, 571, 359);
                    g.Flush();
                    ReleaseDC(m.HWnd, hdc);
                }
            }
        }
        private void Form5_MouseCaptureChanged(object sender, EventArgs e)
        {
            Graphics g = this.CreateGraphics();
            Pen pen1 = new Pen(Color.FromArgb(64, 64, 64));
            Pen pen2 = new Pen(Color.FromArgb(128, 128, 128));
            Pen pen3 = new Pen(Color.FromArgb(212, 208, 200));
            g.DrawLine(pen1, 573, 0, 573, 360);//最外边
            g.DrawLine(pen2, 572, 1, 572, 359);//最外边第二条白色
            g.DrawLine(pen3, 571, 2, 571, 359);
            g.DrawLine(pen3, 571, 2, 571, 359);
            g.Flush();
        }
}
}


 

分享到:
评论

相关推荐

    Winform去掉最大化最小化关闭按钮

    总结来说,要实现“Winform去掉最大化最小化关闭按钮”的功能,主要步骤包括:改变`FormBorderStyle`为`None`,设置`ControlBox`为`false`,重写`ProcessCmdKey`以拦截关闭窗口的快捷键,以及可选地添加自定义的关闭...

    WINFORM\C# WinForm 最大化、最小化、关闭按钮事件的拦截

    ### WINFORM\C# WinForm 最大化、最小化、关闭按钮事件的拦截 在C# WinForm应用程序开发中,有时我们需要对窗口的最大化、最小化和关闭操作进行自定义处理,例如显示确认对话框或者执行特定任务等。通过重写`...

    C#窗体编程不显示最小化、最大化、关闭按钮的方法

    本文介绍在C#窗体编程时,如何设置不显示右上角的最小化最大化关闭按钮。可以通过this.ControlBox这个属性的值来控制。 在Windows的窗体编程中,基本上每一个窗体都是一个最小化、最大化和关闭按钮的。见惯了...

    C#窗体最大化 最小化 关闭按钮灰色 失效改变功能

    在本教程中,我们将探讨如何实现标题中提到的几个关键功能:使窗体最大化、最小化按钮灰色不可用,以及改变或禁用关闭按钮的功能。 首先,让我们了解窗体的基本属性和方法。在C#中,我们可以使用`System.Windows....

    C# 自定义窗体的最大化、最小化和关闭按钮

    自定义窗体的最大化、最小化和关闭按钮, C#移动无标题栏窗体的三种代码: C#移动无标题栏窗体的三种代码:第一种采用,需注意窗体上的控件是否把窗体覆盖了。。。MouseDown、MouseMove、MouseUp事件应该是鼠标所...

    WinForm窗体跟随最大化最小化自适应C#

    WinForm窗体跟随最大化最小化自适应C#,窗体跟随,跟随句柄, 最大化, 最小化 跟随移动 ,winform .net C#

    自定义窗体的最大化、最小化和关闭按钮.zip源码C#WinForm实例源码适合研究学习技术

    自定义窗体的最大化、最小化和关闭按钮.zip源码C#WinForm实例源码适合研究学习技术自定义窗体的最大化、最小化和关闭按钮.zip源码C#WinForm实例源码适合研究学习技术 1.适合学生做毕业设计参考模板。 2.适合程序员...

    C# Winform实现捕获窗体最小化、最大化、关闭按钮事件的方法

    在C# Winform应用程序开发中,有时我们需要对窗体的操作进行自定义处理,例如当用户点击窗体的最小化、最大化或关闭按钮时,我们可能希望执行特定的代码逻辑。本篇文章将详细介绍如何通过重写WndProc方法来捕获这些...

    C#自定义窗体的最大化、最小化和关闭按钮

    摘要:C#源码,菜单窗体,窗体美化 C#自定义窗体的最大化、最小化和关闭按钮,实际上是对窗体进行美化,一个简单的美化窗体的小例子,把背景图像应用到窗体上,同时使用JPG图像代替窗口上默认的最大化、最小化和关闭...

    实现winform软件最小化到系统托盘

    实现winform软件最小化到系统托盘,防止程序被失误关闭,导致程序无法继续运行。 实现功能:程序启动后,可点击程序关闭按钮,程序自动收缩至右下角的系统托盘。 使用语言:C# 运行环境:windows 注意事项: 1.编译...

    winform去掉右上角关闭按钮的方法

    然而,如果希望保留最小化和最大化按钮,但仅禁用关闭按钮,就需要采取更复杂的方法。这时,我们可以重写窗体的`CreateParams`属性。`CreateParams`属性用于获取创建窗体所需的参数,其中包括窗口类风格。通过修改...

    c# winform取消右上角关闭按钮的实现方法

    本文将详细介绍如何实现取消WinForm窗口右上角的关闭按钮,同时保留最小化和最大化功能。 首先,我们可以简单地通过设置窗体的`ControlBox`属性来隐藏所有标准控制按钮,包括关闭、最小化和最大化按钮。这可以通过...

    关于C#WinForm FlowLayoutPanel 最小化还原出现空白问题解决方案

    然而,在处理窗口最大化和最小化的过程中,可能会遇到一些问题,比如当窗体从最小化状态恢复时,`FlowLayoutPanel`内部的控件可能出现空白或者滚动区域显示不正常的情况。这个问题主要与`FlowLayoutPanel`的`Dock`...

    WinForm开发常用按钮图标

    它们通过图形化的表示方式传达了各种操作的意义,例如“保存”、“打开”、“关闭”等。16X16像素的图标适合在空间有限的地方使用,如任务栏或者状态栏,而32X32像素的图标则更适用于主界面的按钮,能提供更好的视觉...

    winform圆角框和窗体最大化问题

    在Windows Forms(Winform)开发中,我们经常需要自定义窗体的外观,例如创建具有圆角的窗体,或者调整窗体的最大化行为。在本案例中,开发者遇到了一个特定的问题,即窗体最大化后,logo图片的位置发生了变化。让...

    MDI父窗体中的子窗体最大化后消除子窗体在父窗体菜单栏中的图标

    Winform的MDI父窗体中的子窗体最大化后消除子窗体在父窗体菜单栏中的图标。

    C#Winform左侧伸缩菜单实现

    在C# WinForm应用开发中,创建一个可伸缩的左侧菜单是常见需求,它可以提供良好的用户界面体验,尤其在大型复杂系统中。本话题将深入探讨如何在C# WinForm环境中实现这样的功能。 首先,我们需要理解WinForm的基本...

    C# winForm 按钮的综合性美化

    本主题将深入探讨如何实现“C# winForm 按钮的综合性美化”,包括但不限于按钮的圆角、边框美化、动态效果、状态显示以及图片应用等方面。 首先,我们可以通过自定义控件(UserControl)来扩展默认的Button控件,...

    禁用窗体上的关闭按钮

    然而,这将同时隐藏最小化和最大化按钮,如果希望保留这些功能,我们可以选择不显示关闭按钮,而不是整个控制框。这需要自定义窗体的系统菜单,代码如下: ```csharp protected override void OnCreateControl() { ...

    winform 左侧抽屉式菜单

    "winform 左侧抽屉式菜单"是一个典型的应用场景,它模仿了移动应用中的抽屉式导航,使得用户可以在不占据主窗口空间的情况下访问多个功能选项。下面我们将深入探讨如何利用C#语言和WinForm控件实现这一设计。 首先...

Global site tag (gtag.js) - Google Analytics