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);         }

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

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: WinForm是微软的一个桌面应用程序开发框架,其中包含了MessageBox控件,用于弹出消息框显示信息。但是默认的MessageBox只能显示固定的按钮和图标,无法满足个性化的需求。因此,我们可以自定义一个MessageBox,满足我们特定的需求。 为了实现自定义MessageBox,我们可以创建一个新的,命名为CustomMessageBox。在该中,我们可以自定义布局、样式和交互方式。 首先,我们需要定义一个静态的方法,例如Show方法,用于显示自定义MessageBox,并且该方法可以接受不同的参数以满足不同的需求。 在Show方法中,我们可以设置CustomMessageBox的标题、文本、图标和按钮等属性。我们还可以根据需要自定义布局,例如添加更多的文本框、复选框或者其他控件。 另外,我们可以为CustomMessageBox定义一些事件,例如按钮的点击事件,以便用户点击按钮后执行相应的操作。可以根据按钮的不同使用不同的事件响应,例如确认按钮可以执行特定的操作,取消按钮可以关闭CustomMessageBox口。 最后,在应用程序的代码中,可以通过调用CustomMessageBox的Show方法来显示自定义的消息框,传入相应的参数,使其满足我们的需求。 总的来说,通过自定义WinForm的MessageBox,我们可以更加灵活和个性化地显示消息框,满足不同的需求。这样用户在使用我们的应用程序时,将会有更好的用户验。 ### 回答2: WinForm是一种用户界面开发工具,在.NET平台上使用C#编写应用程序的工具。WinForm中提供了MessageBox控件,用于显示提示消息、询问消息及警告消息。但是我们也可以通过自定义MessageBox类来实现个性化的消息框。 要自定义MessageBox,我们可以创建一个继承自Form类的新,然后在该中添加各种控件,来实现我们想要的消息框效果。可以自定义消息文字、标题、图标、按钮等。 首先,我们可以设置的样式,例如调整的大小、位置、样式、背景色等。接着,我们可以添加一个Label控件来显示消息内容,并根据需要设置其字、颜色、对齐方式等属性。 然后,我们可以添加一个PictureBox控件来显示图标,可以是默认的信息图标,也可以是自定义图标。可以根据消息类型来选择不同的图标,例如,信息类型可以使用Info图标,警告类型可以使用Warning图标,错误类型可以使用Error图标等。 接下来,我们可以添加多个按钮,并根据需要设置其样式、文本、事件等属性。例如,我们可以添加一个确定按钮,点击后关闭消息框,并返回一个确定结果给调用者;我们也可以添加一个取消按钮,点击后关闭消息框,并返回一个取消结果给调用者。 最后,在自定义MessageBox类中添加必要的属性和方法,例如,用于设置消息内容、图标类型、按钮样式等属性的方法,用于获取点击按钮结果的方法等。 总之,通过自定义MessageBox类,我们可以更加灵活地定制化消息框,使其符合我们的设计需求,并提供更好的用户验。 ### 回答3: WinForm自定义MessageBox可以通过继承MessageBox类,并重写其相应方法来实现。以下是一种实现方式: 首先,新建一个名为CustomMessageBox的类,并继承自MessageBox类。 然后,在CustomMessageBox类中重写Show方法,该方法用于显示自定义的消息框。 在重写的Show方法中,可以通过创建一个自定义,来代替系统默认的MessageBox。 在自定义中,可以添加自定义的控件,例如Label用于显示消息内容,Button用于表示确定或取消等按钮。 可以通过修改的样式、大小、位置等属性,使其与自己的需求相匹配。 添加事件处理方法,处理按钮的点击事件,以响应用户的操作。 最后,根据用户的操作结果,返回相应的DialogResult,以便调用方可以根据返回值进行相应的处理。 这样,我们就可以调用自定义的Show方法来显示我们定义的消息框了,例如: CustomMessageBox.Show("这是一个自定义的消息框。"); 通过以上步骤,我们可以实现一个自定义的WinForm消息框,以满足我们特定的需求,如更改消息框的样式、增加额外的功能等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

HappyGirl快乐女孩

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

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

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

打赏作者

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

抵扣说明:

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

余额充值