C# 自定义MessageBox窗体

本例子中制作一个无边框的MessageBox窗体

展示效果:

窗体设计

  1. 添加一个窗体继承原生Form

  2. 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, 0);         }          /// <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 = 2;
  private void lblTitleBar_MouseDown(object sender, MouseEventArgs e)         {             //为当前的应用程序释放鼠标捕获             ReleaseCapture();             //发送消息﹐让系統误以为在标题栏上按下鼠标             SendMessage((int)this.Handle, WM_NCLBUTTONDOWN, HTCAPTION, 0);         }

文章来自网络,仅作为个人学习总结,如有侵权,请联系小编删除

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HappyGirl快乐女孩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值