如图,在中文输入法下我希望点击“X”,然后把TextBox清空,一般来说,直接用TextBox.Text = "";或者TextBox.Text = String.Empty;就可以清空,
但是在中文输入法的状态下,这个操作这是相当于按了软键盘的“确定”键。TextBox里面显示为“jfshhgsjnf”,需要我再点多一次清除按钮才能清空。
很显然,直接写两句TextBox.Text = "";或者TextBox.Text = String.Empty;也是不行的,这就需要在两次操作之间留个时间间隙,当然,时间也不可以
太短。这个可以用DispatcherTimer实现。
但是,如果你的TextBox中有Hint属性的,第一次TextBox.Text = "";后会造成Hint语句出现,然后text内容和Hint语句在一定时间内重叠,影响体验,可以对
TextBox进行赋值处理。
string value = textBox1.Text;
this.textBox1.Text = "";
this.textBox1.Text = value;
DispatcherTimer time = new DispatcherTimer();
time.Interval = TimeSpan.FromMilliseconds(200);
time.Tick += time_Tick;
time.Start();
void time_Tick(object sender, EventArgs e)
{
this.textBox1.Text = "";
DispatcherTimer time = sender as DispatcherTimer;
time.Stop();
}