c# 自定义控件-提示框(弹框)

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

调用方法:

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
    }

猜你喜欢

转载自www.cnblogs.com/zhoushuang0426/p/11994704.html