在应用程序设计时候,我们经常需要判断用户输入的数据是否合法,不合法给出提示,一般提示都是用MessageBox,但是怎样达到类似下面的效果呢?
右边有个小红叹号,鼠标放上还有信息提示。。。。
这个就需要使用C#提供的错误显示控件了。
在工具栏找到errorPrivoder控件拖进来,发现跟timer控件差不多。。呵呵。。。。
创建应用界面如下:
我们用到的是errorProvider1.SetError这个函数有两个参数,第一个是要显示错误的对于空间ID,第二个是鼠标放在上面自动显示的信息。
代码如下:(这个代码完全实现了用户登陆的细节,需要的话可以直接放到自己代码中)
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace 使用错误提示控件 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void btnSure_Click(object sender, EventArgs e) { if (txtName.Text != "Admin") { if (txtName.Text != "") { errorProvider1.SetError(txtName, "用户名输入错误"); DialogResult d = MessageBox.Show("用户名输入错误", "错误", MessageBoxButtons.RetryCancel, MessageBoxIcon.Question); if (d == DialogResult.Retry) { txtName.Text = ""; txtPsw.Text = ""; txtRePsw.Text = ""; } else { this.Close(); } } else { errorProvider1.SetError(txtName, "用户名不能为空"); DialogResult d = MessageBox.Show("用户名不能为空", "错误", MessageBoxButtons.RetryCancel, MessageBoxIcon.Question); if (d == DialogResult.Retry) { txtName.Text = ""; txtPsw.Text = ""; txtRePsw.Text = ""; } else { this.Close(); } } } else //判断密码 { if (txtPsw.Text == "") { errorProvider1.SetError(txtPsw, "密码不能为空"); DialogResult d = MessageBox.Show("密码不能为空", "错误", MessageBoxButtons.RetryCancel, MessageBoxIcon.Question); if (d == DialogResult.Retry) { txtPsw.Text = ""; txtRePsw.Text = ""; } this.Close(); } else { if (txtRePsw.Text != txtPsw.Text) { errorProvider1.SetError(txtRePsw, "密码不一致"); DialogResult d = MessageBox.Show("密码不一致", "错误", MessageBoxButtons.RetryCancel, MessageBoxIcon.Question); if (d == DialogResult.Retry) { txtRePsw.Text = ""; txtPsw.Text = ""; } else { this.Close(); } } else { if (txtPsw.Text != "Admin") { errorProvider1.SetError(txtPsw, "密码错误"); DialogResult d = MessageBox.Show("密码错误", "错误", MessageBoxButtons.RetryCancel, MessageBoxIcon.Question); if (d == DialogResult.Retry) { txtPsw.Text = ""; txtRePsw.Text = ""; } else { this.Close(); } } else { MessageBox.Show("登陆成功"); } } } } } } }