C#自定义好看的消息提示窗口MessageBox
效果
优点
- 模态对话框,原来的主窗口无法点击必须先响应消息提示窗口
- 不需要为 该消息窗口的实例添加按钮点击事件,响应消息窗口以后可以立刻返回用户点击了确定还是取消
- 调用该消息窗口的线程,必须等待用户响应了消息窗口才能继续执行下面的代码,和原生的MessageBox类一样
缺点 - 需要新建实例再使用 不能像原生的MessageBox类直接利用MessageBox.show()使用
(下面通过点击按钮1 显示消息窗口来展示效果)
消息窗口出现前的效果
消息窗口出现后的效果
鼠标移动到消息窗口按钮的效果图
同时鼠标可以 自由移动消息窗口
用法
private void button1_Click(object sender, EventArgs e2){using(MyMessageBox1 myMessageBox1 = new MyMessageBox1()){string hh = myMessageBox1.showMessage("我i说的话发生发撒");if(hh == "confirm"){Console.WriteLine("点击了确定");}else if(hh == "cancel"){Console.WriteLine("点击了取消或叉叉");}}}
源代码
命名空间
using System;
using System.Windows.Forms;
using System.Drawing;
消息窗口代码
public class MyMessageBox1: Form{#region 初始化按钮private void button_init(Button button){button.BackColor = Color.White;button.FlatStyle = FlatStyle.Flat;button.Font = new Font("微软雅黑", 10);button.FlatAppearance.BorderColor = Color.Black;button.FlatAppearance.MouseOverBackColor = Color.Black;button.FlatAppearance.MouseDownBackColor = Color.Black;button.MouseEnter += button_WinSignIn_SignIn_MouseEnter;button.MouseLeave += button_Lev;}private void button_WinSignIn_SignIn_MouseEnter(object sender, EventArgs e){Button button = (Button)sender;button.ForeColor = Color.White;}private void button_Lev(object sender, EventArgs e){Button button = (Button)sender;button.ForeColor = Color.Black;}#endregionButton[] buttons = new Button[2];Label[] labels = new Label[1];public MyMessageBox1(){this.Size = new Size(320, 200);this.BackColor = Color.White;this.ShowIcon = false;this.ShowInTaskbar = false;this.MaximizeBox = false;this.MinimizeBox = false;//this.ControlBox = false;this.StartPosition = FormStartPosition.CenterParent;this.FormBorderStyle = FormBorderStyle.FixedSingle;this.AutoSizeMode = AutoSizeMode.GrowAndShrink;labels[0] = new Label();labels[0].Text = "";labels[0].Anchor = AnchorStyles.None;labels[0].AutoSize = true;labels[0].Font = new Font("微软雅黑", 12);this.Controls.Add(labels[0]);buttons[0] = new Button();buttons[0].Text = "确定";button_init(buttons[0]);buttons[0].Font = new Font("微软雅黑", 10);buttons[0].Width = 150;buttons[0].Height = 50;buttons[0].Location = new Point(1, this.Height - 90);buttons[0].FlatAppearance.BorderColor = Color.White;buttons[0].Click += MyMessageBox1_Click1;buttons[0].Anchor = AnchorStyles.None;this.Controls.Add(buttons[0]);buttons[1] = new Button();buttons[1].Location = new Point(153, buttons[0].Location.Y);buttons[1].Text = "取消";button_init(buttons[1]);buttons[1].Font = new Font("微软雅黑", 10);buttons[1].Width = 150;buttons[1].Height = 50;buttons[1].FlatAppearance.BorderColor = Color.White;buttons[1].Click += MyMessageBox1_Click;buttons[1].Anchor = AnchorStyles.None;this.Controls.Add(buttons[1]);}//当点击右上角叉叉的时候默认返回cancelstring theClickButton = "cancel";private void MyMessageBox1_Click1(object sender, EventArgs e){theClickButton = "confirm";this.Close();}private void MyMessageBox1_Click(object sender, EventArgs e){theClickButton = "cancel";this.Close();}public string showMessage(string text){labels[0].Text = text;labels[0].Location = new Point(this.Width / 2 - labels[0].Width / 2-10, this.Height / 2 - labels[0].Height / 2-45);//ShowDialog相当于线程暂停 此处的话就需要close或者dispose以后才会 return theClickButton;this.ShowDialog();return theClickButton;}}
持续更新中…
C#自定义好看的消息提示窗口MessageBox相关推荐
- 2.关于QT中的Dialog(模态窗口),文件选择器,颜色选择器,字体选择器,消息提示窗口
1 新建一个空项目 A 编写 .pro文件 QT += gui widgets HEADERS += \ MyDialog.h SOURCES += \ MyDialog.cpp B 编写MyD ...
- 扩展springmvc组件——当页面跳转时,需要在Controller里面创建一个空方法去跳转或者是创建一个配置类 ||日期格式化说明||自定义格式化器||消息转化器扩展fastjson
在容器中注册视图控制器 当页面跳转时,我们需要在Controller里面创建一个空方法去跳转,那么有没有别的配置方法呢 创建一个WebMvcConfig的配置类 实现WebMvcConfigure ...
- c#在线程中打开类似msn的消息提示窗口
// 启动线程 private void button2_Click(object sender, System.EventArgs e) { Thread receivex = ...
- 用VC++制作MSN、QQ 的消息提示窗口
用VC++制作MSN.QQ 的消息提示窗口 用过QQ和MSN聊天工具的人都知道,只要好友上线,就会在托盘的位置处显示一个提示窗口,以是拉帘式的,或者是淡入淡出的形式出现:想想何不为自己的程式也加一个漂 ...
- Mac电脑的锁屏界面如何自定义锁屏消息?
Mac锁屏消息是一种非常实用的功能,您可以设置自定义消息,使其显示在Mac的锁定屏幕上,可以放上任何你觉得有用或者有趣的消息,例如如果您放上个人的联系信息,在放错Mac或丢失Mac的时候,会非常有用, ...
- WPF自定义控件与样式(13)-自定义窗体Window 自适应内容大小消息框MessageBox
一.前言 申明:WPF自定义控件与样式是一个系列文章,前后是有些关联的,但大多是按照由简到繁的顺序逐步发布的等,若有不明白的地方可以参考本系列前面的文章,文末附有部分文章链接. 本文主要内容: 自定义 ...
- 【转】WPF自定义控件与样式(13)-自定义窗体Window 自适应内容大小消息框MessageBox...
一.前言 申明:WPF自定义控件与样式是一个系列文章,前后是有些关联的,但大多是按照由简到繁的顺序逐步发布的等. 本文主要内容: 自定义Window窗体样式: 基于自定义窗体实现自定义MessageB ...
- rocketmq 消息 自定义_RocketMQ的消息发送及消费
RocketMQ消息支持的模式: 消息支持的模式分为三种:NormalProducer(普通同步),消息异步发送,OneWay. 消息同步发送: 普通消息的发送和接收在前面已经演示过了,在前面的案例中 ...
- android自定义队列,Android 消息机制(一)消息队列的创建与循环的开始 Looper与MessageQueue...
写在前面 本文基于Android 7.1.1 (API 25)的源码分析编写 与之前的触摸事件分发机制分析的文章一样,Android系统机制的分析中关键的一环就是事件消息的处理.之前也说过,Andro ...
最新文章
- findfirst findnext 递归查找指定目录下所有子目录下所有文件,为什么总是死机?...
- 我用的 cordova 插件
- c语言程序中的错误可分为,《C语言程序设计(本)》模拟试卷1.doc
- java tcp 编程实例_Java实现基于TCP的通讯程序实例解析
- ASP.NET Core 3.x控制IHostedService启动顺序浅探
- 启动之后自己关闭_如何关闭Mac开机总是要输入密码?
- php+mysql将大数据sql文件导入数据库
- sqlite3源码调试
- 代表JAVA线程优先级的常量是_Java 线程优先级
- forcast iframe 及 四款播放器
- 网站被降权了怎么办?被降权后的正确处理方法
- 北京市工作居住证官方网站js报错不能使用解决办法
- Linq的Distinct方法
- Perfect Tree(图论)
- Android 耳机驱动知识
- Adb 抓不住Genymotion的解决方法
- 快客脚本引流工作室:每天用脚本快速引流几千上万到底是啥回事。
- 花瓣搜索编辑网站的方法
- 高精度加法(C++基础算法)
- python怎么写rpg游戏_python实现的简单RPG游戏流程实例