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