日期:2014-05-18  浏览次数:21150 次

关于validating的问题(初学)
本人学习《c#入门经典》,遇到了问题。下面是一段程序,来自书中。
我不明白的是,如何才能触发下面的validating?还有,如果光标变成了方形,如何才能纠正?
夜深了,打扰大家了。谢谢大家。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace WindowsApplication3
{
  public partial class Form1 : Form
  {
  public Form1()
  {
  InitializeComponent();
  }
   
  private void textBox1_TextChanged(object sender, EventArgs e)
  { this.textBox1.Validating += new System.ComponentModel.CancelEventHandler(this.txtBoxEmpty_Validating);
  }
  private void txtBoxEmpty_Validating(object sender, System.ComponentModel.CancelEventArgs e)
  {
  TextBox tb = (TextBox)sender;
  if (tb.Text.Length == 0) { tb.BackColor = Color.Red; }
  else { tb.BackColor = System.Drawing.SystemColors.Window; }
  }  
  }
}

------解决方案--------------------
上面说的容易产生误解,这样说会好一些

textBox1失去焦点就触发这一事件了,但是如果要看到效果,先在textBox1输入一些内容,然后将输入的内容清空,用鼠标点下窗体的其它控件,让textBox1失去焦点,此时textBox1的背景色就变为红色了