分带取消按钮和不带取消按钮的

调用方法:

frmMessageBox frm = new frmMessageBox("提示", "数据连接失败,请重试!", 0);
frm.ShowDialog();
frm.Dispose();
GC.Collect();
frmMessageBox frm = new frmMessageBox("删除用户", "确定删除用户?", 1);
frm.ShowDialog();
frm.Dispose();//模式窗体不会自动调用资源清理,需手动清理,否则会内存溢出
GC.Collect();
if (frm.DialogResult != DialogResult.OK) return;
//执行的操作

自定义:

public partial class frmMessageBox : Form
{
private bool normalmoving = false;
private Point oldMousePosition; /// <summary>
/// type=0/1:0表示无取消按钮;1表示有确定和取消按钮
/// </summary>
/// <param name="type"></param>
public frmMessageBox(int type)
{
InitializeComponent();
InitButton(type);
} private void InitButton(int type)
{ if (type == 0)
{
this.btnOK.Location = new System.Drawing.Point(195, 160);
this.button2.Visible = false;
}
} public frmMessageBox(string Title, string Message, int type):this(type)
{
this.Message = Message;
this.Title = Title;
}
/// <summary>
/// Message
/// </summary>
public string Message
{
set
{
this.lblMessage.Text = value;
}
}
/// <summary>
/// Title
/// </summary>
public string Title
{
set
{
this.lblTitle.Text = value; }
} /// <summary>
/// 确定事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnOK_Click(object sender, EventArgs e)
{
//1.返回一个值,给调用者
this.DialogResult = DialogResult.OK;
//2.关闭
this.Close();
}
/// <summary>
/// 取消事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void picCancle_Click(object sender, EventArgs e)
{
this.DialogResult = DialogResult.Cancel;
this.Close();
} private void frmMessageBox_Load(object sender, EventArgs e)
{ }
#region 标题栏的相关事件
private void pnlTitle_MouseDown(object sender, MouseEventArgs e)
{
if (this.WindowState == FormWindowState.Maximized)
{
return;
}
//Titlepanel.Cursor = Cursors.NoMove2D;
oldMousePosition = e.Location;
//moving = true;
normalmoving = true;
} private void pnlTitle_MouseMove(object sender, MouseEventArgs e)
{
//如果leftlag为true则进行移动
if (!normalmoving) return;
if (e.Button == MouseButtons.Left && normalmoving)
{
Point newposition = new Point(e.Location.X - oldMousePosition.X, e.Location.Y - oldMousePosition.Y);
this.Location += new Size(newposition);
//if (MousePosition.Y <= 0)
//{
// this.WindowState = FormWindowState.Maximized;
// maxmoving = false;
//}
}
} private void pnlTitle_MouseUp(object sender, MouseEventArgs e)
{
if (normalmoving)
{
normalmoving = false;
}
}
#endregion
}

最新文章

  1. 高性能 TCP/UDP/HTTP 通信框架 HP-Socket v4.1.1
  2. HTML5权威指南--Web Storage,本地数据库,本地缓存API,Web Sockets API,Geolocation API(简要学习笔记二)
  3. IELTS - Word List 28
  4. 只有PD号的调起
  5. 安卓Handler机制的例子
  6. 常用DOS命令参数详解
  7. 【Nutch基础教程之七】Nutch的2种运行模式:local及deploy
  8. MVC是一种用于表示层设计的复合设计模式
  9. FMDB的一些基本操作小结
  10. 日期、时间选择器(DatePicker和TimePicker)的功能与用法
  11. 译|调整JavaScript抽象的迭代方案
  12. DataBase MongoDB高级知识-易使用
  13. python 格式化输出日志记录
  14. docker+efk+.net core部署
  15. SQL表的基本操作
  16. Vue常用模块
  17. 洛谷 5291 [十二省联考2019]希望(52分)——思路+树形DP
  18. Mysql 之分库分表方案
  19. UIPanGestureRecognizer translateInView, locationInView
  20. .NET发送请求(get/post/http/https),携带json数据,接收json数据

热门文章

  1. 如何加载本地下载下来的BERT模型,pytorch踩坑!!
  2. python22day
  3. foreEach 跳出循环
  4. 高德地图定位api以及导航和定位 位置的偏差
  5. ReactiveCocoa 学习资料
  6. MinIO简介和java Api的使用
  7. 如何在 pyqt 中实现全局事件总线
  8. 【密码学工具】Ciphey和WinDecrypto的使用随笔
  9. opencv笔记--Active contours
  10. Solution -「ZJOI2012」「洛谷 P2597」灾难