读书人

winform中用户控件中textbox的focus有

发布时间: 2012-04-10 21:03:56 作者: rapoo

winform中用户控件中textbox的focus问题,求高手!
窗体中有一个用户控件,用户控件有个textbox,textbox的leave事件,该事件先弹出一个消息框,然后会执行textbox.Focus()方法。

现在的问题是 如果我把焦点移到用户控件内部的其他控件上,很正常。如果焦点移到用户控件之外的控件上,会一直执行leave事件,陷入死循环。可能是因为textbox没有获取焦点。请问该如何解决?
代码如下:

C# code
private void textBox_fpbl_Leave(object sender, EventArgs e)        {            string text = textBox_fpbl.Text.Trim();            if (text == string.Empty)            {                MyTip.WarnTip("业绩比例不能为空!");                               textBox_fpbl.Focus();                return;            }        }



[解决办法]
间接性死循环,比方说楼主的程序是个mdi,会造成程序卡死(但cpu不高);
换个方法
private void textBox1_Validating(object sender, CancelEventArgs e)
{
string text = textBox1.Text.Trim();

if (text == string.Empty)
{
MyTip.WarnTip("业绩比例不能为空!");


e.Cancel = true;

}
}

读书人网 >C#

热点推荐