来访人员登记系统(十一)自定义消息提示框MessageBox

前置模块

来访人员登记系统(七)签到签退模块

本文在签到模块中换用了自定义的消息提示框,效果如下图:


实现思路

具体实现方法是创建一个新的窗体,然后加两个PictureBox,设置背景图片为一个透明的png文件,用以表示未找到图片的样式,右侧放一个panel,里面加几个label和button,窗体设计到这里就大致完成了,可以再调一些细节上的属性。

在窗体实现方法里面传递一些要显示的参数,这里我是用多个string来传递的,用PictureBox的Load方法加载图片,将信息显示在右边panel中的label里,再设置button_OK的DialogResult为OK,在两个button的点击事件中将窗体关闭,资源释放。


C#窗体代码

        public Form_MessageBox(string name, 
                               string company,
                               string idcard,
                               string phone,
                               string staff,
                               string ETA,
                               string date,
                               string relevants,
                               string intention)
        {
            InitializeComponent();

            label_login_user_name.Text = Form_Login.login_user_name;

            string[] filename = Directory.GetFiles(Form_Main.image_directory, idcard + "*", SearchOption.AllDirectories);
            if (filename.Length == 2)
            {
                string filename1 = filename[0];
                string filename2 = filename[1];
                pictureBox_a.Load(filename1);
                pictureBox_b.Load(filename2);
            }

            label_info.Text = "姓名:" + name + "\n\n" +
                              "单位:" + company + "\n\n" +
                              "身份证号:" + idcard + "\n\n" +
                              "电话:" + phone + "\n\n" +
                              "对接人员:" + staff + "\n\n" +
                              "预约时间:" + ETA + "\n\n" +
                              "预约日期:" + date + "\n\n" +
                              "涉及设备/系统:" + relevants + "\n\n" +
                              "来访目的:" + intention ;
        }

        private void button_OK_Click(object sender, EventArgs e)
        {
            Close();
        }

        private void button_cancel_Click(object sender, EventArgs e)
        {
            Close();
        }

        private void Form_MessageBox_FormClosing(object sender, FormClosingEventArgs e)
        {
            Dispose();
        }

总结

本文实现的是一个非常简单的自定义消息提示框,没有从样式上进行更新,只是增加了显示图片的功能;
要实现图片大小适应PictureBox的大小,可以分别设置SizeMode和BackgroundImageLayout属性值为StretchImage和Stretch;
在窗体关闭时,要调用Dispose()方法释放占用的资源,否则将出现资源访问冲突。

posted @ 2020-09-25 14:47  老鼠司令  阅读(231)  评论(0编辑  收藏  举报