C#自定义无边框MessageBox窗体
C#自定义无边框MessageBox窗体
本例子中制作一个无边框的MessageBox窗体
展示效果:

窗体设计
1.添加一个窗体继承原生Form
public partial class MessageBoxEX : Form
2.属性添加
private string _titleText = "提示";
public string TitleText
{
get { return _titleText; }
set { _titleText = value; }
}
private string _contentText = "暂无信息!";
public string ContentText
{
get { return _contentText; }
set { _contentText = value; }
}
3.事件添加
/// <summary>
/// 窗体load的时候讲文本赋值给消息框
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void MessageBoxEX_Load(object sender, EventArgs e)
{
if (this._contentText.Trim() != "")
{
this.lblTitalContent.Text = this._titleText;
this.lblMessage.Text = this._contentText;
}
}
/// <summary>
/// 鼠标按下标题栏移动窗体
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void lblTitleBar_MouseDown(object sender, MouseEventArgs e)
{
//为当前的应用程序释放鼠标捕获
ReleaseCapture();
//发送消息﹐让系統误以为在标题栏上按下鼠标
SendMessage((int)this.Handle, WM_NCLBUTTONDOWN, HTCAPTION, );
} /// <summary>
/// 关闭按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnClose_Click(object sender, EventArgs e)
{
this.DialogResult = System.Windows.Forms.DialogResult.Cancel;
} /// <summary>
/// 确定按钮事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnOK_Click(object sender, EventArgs e)
{
this.DialogResult = System.Windows.Forms.DialogResult.OK;
} /// <summary>
/// 取消按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnCancel_Click(object sender, EventArgs e)
{
this.DialogResult = System.Windows.Forms.DialogResult.Cancel;
}
4.对外公共方法show设计 这里只填写俩个(有需要可以自行修改)
public static DialogResult Show(string text)
{
MessageBoxEX msgbox = new MessageBoxEX(text);
return msgbox.ShowDialog();
} public static DialogResult Show(string title,string text)
{
MessageBoxEX msgbox = new MessageBoxEX(title,text);
return msgbox.ShowDialog();
}
5.添加单击窗体标题栏移动窗体
[DllImport("user32.dll", EntryPoint = "SendMessageA")]
private static extern int SendMessage(int hwnd, int wMsg, int wParam, int lParam);
[DllImport("user32.dll")]
private static extern int ReleaseCapture();
private const int WM_NCLBUTTONDOWN = 0XA1; //.定义鼠標左鍵按下
private const int HTCAPTION = ;
private void lblTitleBar_MouseDown(object sender, MouseEventArgs e)
{
//为当前的应用程序释放鼠标捕获
ReleaseCapture();
//发送消息﹐让系統误以为在标题栏上按下鼠标
SendMessage((int)this.Handle, WM_NCLBUTTONDOWN, HTCAPTION, );
}
效果展示:

工程源程序下载
C#自定义无边框MessageBox窗体的更多相关文章
- C# 无边框异型窗体制作
我是一个C#的初学者 只要涉及到windows窗体编程 都希望窗体的外观比较好看 不是系统默认的那样 对于C# 更改窗体外观感觉并不那么轻松 更改窗体外观涉及到使用GDI+ 我所知道的有两种方法: 有 ...
- Qt中实现无边框的窗体
1 自定义窗体类继承自QWidget 2 在构造函数中设置无边框效果 setWindowFlags(Qt::FramelessWindowHint);//无边框 setAttribute(Qt::WA ...
- C# .net WPF无边框移动窗体
转自 http://download.csdn.net/detail/xiang348352/3095084 WPF无边框移动窗体,先在<Window>里添加 MouseLeftButto ...
- WPF无边框移动窗体
WPF无边框移动窗体,先在<Window>里添加 MouseLeftButtonDown=”Window_MouseLeftButtonDown” 然后导航到事件,在事件里添加 if (e ...
- 如何在pyqt中自定义无边框窗口
前言 之前写过很多关于无边框窗口并给窗口添加特效的博客,按照时间线罗列如下: 如何在pyqt中实现窗口磨砂效果 如何在pyqt中实现win10亚克力效果 如何在pyqt中通过调用SetWindowCo ...
- C# 自定义无边框窗体阴影效果
工作中我们会经常遇到自定义一些窗口的样式,设置无边框然后自定义关闭.最大化等其他菜单,但是这样就失去了Winform自带的边框阴影效果,下面这个方法能让无边框增加阴影效果.代码如下: using Sy ...
- Winform自定义无边框窗体
目的: 1.将窗体设置成无边框,如下面效果图 2.该无边框窗体添加了窗体放大.缩小(可以根据需要只能横向放大缩小 或者 竖向放大缩小)的功能 Point vPoint = new Point((i ...
- 做个无边框winform窗体,并美化界面
今天下午程序写完,有些时间就搞下界面美化,做个无框窗体.首先把窗体的FormBorderStyle设置为None,就变成无框的啦,不过你会发现这样窗体上就没有原来的最大最小化和关闭按钮了哦,所以要自己 ...
- WPF 无边框透明窗体
WindowStyle="None"--无边框,如果需要其它按钮,如缩小.放大.收缩.关闭按钮,可以自定义 AllowsTransparency="True"- ...
随机推荐
- MySQL报1130错误解决办法
update user set password_expired='N' where host = '127.0.0.1'; update user set password=password('ro ...
- Java SPI机制学习笔记
最近在阅读框架源代码时,常常看到 SPI 的子包, 忍不住查了下: Service Provider Interface : 服务提供接口. JavaSPI 实际上是“基于接口的编程+策略模式+配置文 ...
- Kubernetes 编排系统
1.1 Kubernetes简介 1.1.1 什么是Kubernetes Kubernetes (通常称为K8s,K8s是将8个字母“ubernete”替换为“8”的缩写) 是用于自动部署.扩展和管理 ...
- supervisor //todo
#安装easy-installyum install python-setuptools #安装 supervisoreasy_install supervisor #创建主配置文件echo_supe ...
- shell变量的截取总结
#shell变量的截取 Shell中的${}.##和%% 假设定义了一个变量为: 代码如下: file=/dir1/dir2/dir3/my.file.txt //变量的删除 可以用${ }分别替换得 ...
- [BetterExplained]书写是为了更好的思考
我经常在走路和睡前总结所学过的内容,思考遗留的问题,一段时间的阅读和思考之后,一个总体的知识框架就会逐渐浮现在脑海中.然后我会将它书写下来,然而,我往往非常惊讶地发现,当我书写的时候,新的内容仍然源源 ...
- VisualVM、JConsole
VisualVM.JConsole 需要熟悉JVM内存模型 https://blog.csdn.net/libaolin198706231987/article/details/55057149 ht ...
- makefile中的wildcard和notdir和patsubst
转自:https://blog.csdn.net/srw11/article/details/7516712 1.wildcard : 扩展通配符 2.notdir : 去除路径 3.patsubst ...
- 100种不同图片切换效果插件pageSwitch
分享100种不同图片切换效果插件pageSwitch.这是一款适用于全屏切换场景,即一切一屏,并且实现了超过一百种切换效果,支持自定义切页动画.效果图如下: 在线预览 源码下载 实现的代码. ht ...
- hdoj:2032
#include <iostream> #include <string> using namespace std; int main() { int n; ][]; ; i ...