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去掉最大化最小化关闭按钮”的功能,主要步骤包括:改变`FormBorderStyle`为`None`,设置`ControlBox`为`false`,重写`ProcessCmdKey`以拦截关闭窗口的快捷键,以及可选地添加自定义的关闭...
### WINFORM\C# WinForm 最大化、最小化、关闭按钮事件的拦截 在C# WinForm应用程序开发中,有时我们需要对窗口的最大化、最小化和关闭操作进行自定义处理,例如显示确认对话框或者执行特定任务等。通过重写`...
本文介绍在C#窗体编程时,如何设置不显示右上角的最小化最大化关闭按钮。可以通过this.ControlBox这个属性的值来控制。 在Windows的窗体编程中,基本上每一个窗体都是一个最小化、最大化和关闭按钮的。见惯了...
在本教程中,我们将探讨如何实现标题中提到的几个关键功能:使窗体最大化、最小化按钮灰色不可用,以及改变或禁用关闭按钮的功能。 首先,让我们了解窗体的基本属性和方法。在C#中,我们可以使用`System.Windows....
自定义窗体的最大化、最小化和关闭按钮, C#移动无标题栏窗体的三种代码: C#移动无标题栏窗体的三种代码:第一种采用,需注意窗体上的控件是否把窗体覆盖了。。。MouseDown、MouseMove、MouseUp事件应该是鼠标所...
WinForm窗体跟随最大化最小化自适应C#,窗体跟随,跟随句柄, 最大化, 最小化 跟随移动 ,winform .net C#
自定义窗体的最大化、最小化和关闭按钮.zip源码C#WinForm实例源码适合研究学习技术自定义窗体的最大化、最小化和关闭按钮.zip源码C#WinForm实例源码适合研究学习技术 1.适合学生做毕业设计参考模板。 2.适合程序员...
在C# Winform应用程序开发中,有时我们需要对窗体的操作进行自定义处理,例如当用户点击窗体的最小化、最大化或关闭按钮时,我们可能希望执行特定的代码逻辑。本篇文章将详细介绍如何通过重写WndProc方法来捕获这些...
摘要:C#源码,菜单窗体,窗体美化 C#自定义窗体的最大化、最小化和关闭按钮,实际上是对窗体进行美化,一个简单的美化窗体的小例子,把背景图像应用到窗体上,同时使用JPG图像代替窗口上默认的最大化、最小化和关闭...
实现winform软件最小化到系统托盘,防止程序被失误关闭,导致程序无法继续运行。 实现功能:程序启动后,可点击程序关闭按钮,程序自动收缩至右下角的系统托盘。 使用语言:C# 运行环境:windows 注意事项: 1.编译...
然而,如果希望保留最小化和最大化按钮,但仅禁用关闭按钮,就需要采取更复杂的方法。这时,我们可以重写窗体的`CreateParams`属性。`CreateParams`属性用于获取创建窗体所需的参数,其中包括窗口类风格。通过修改...
本文将详细介绍如何实现取消WinForm窗口右上角的关闭按钮,同时保留最小化和最大化功能。 首先,我们可以简单地通过设置窗体的`ControlBox`属性来隐藏所有标准控制按钮,包括关闭、最小化和最大化按钮。这可以通过...
然而,在处理窗口最大化和最小化的过程中,可能会遇到一些问题,比如当窗体从最小化状态恢复时,`FlowLayoutPanel`内部的控件可能出现空白或者滚动区域显示不正常的情况。这个问题主要与`FlowLayoutPanel`的`Dock`...
它们通过图形化的表示方式传达了各种操作的意义,例如“保存”、“打开”、“关闭”等。16X16像素的图标适合在空间有限的地方使用,如任务栏或者状态栏,而32X32像素的图标则更适用于主界面的按钮,能提供更好的视觉...
在Windows Forms(Winform)开发中,我们经常需要自定义窗体的外观,例如创建具有圆角的窗体,或者调整窗体的最大化行为。在本案例中,开发者遇到了一个特定的问题,即窗体最大化后,logo图片的位置发生了变化。让...
Winform的MDI父窗体中的子窗体最大化后消除子窗体在父窗体菜单栏中的图标。
在C# WinForm应用开发中,创建一个可伸缩的左侧菜单是常见需求,它可以提供良好的用户界面体验,尤其在大型复杂系统中。本话题将深入探讨如何在C# WinForm环境中实现这样的功能。 首先,我们需要理解WinForm的基本...
本主题将深入探讨如何实现“C# winForm 按钮的综合性美化”,包括但不限于按钮的圆角、边框美化、动态效果、状态显示以及图片应用等方面。 首先,我们可以通过自定义控件(UserControl)来扩展默认的Button控件,...
然而,这将同时隐藏最小化和最大化按钮,如果希望保留这些功能,我们可以选择不显示关闭按钮,而不是整个控制框。这需要自定义窗体的系统菜单,代码如下: ```csharp protected override void OnCreateControl() { ...
"winform 左侧抽屉式菜单"是一个典型的应用场景,它模仿了移动应用中的抽屉式导航,使得用户可以在不占据主窗口空间的情况下访问多个功能选项。下面我们将深入探讨如何利用C#语言和WinForm控件实现这一设计。 首先...