大虾们,帮帮忙
有一个自己封装的TCPSocket类,其中定义了一个接收数据的事件.
现在在一个窗体中处理这个事件,在这个事件函数中,对窗体上的一个TextBox设置输入焦点:TextBox.Focus();但是运行过这段代码后,并没有将输入焦点设到这个TextBox上.
请问是怎么回事?如何让这输入焦点设置成功?
封装的通信类:
public class TcpCli
{
public event NetEvent OnReceive;//定义的接收事件
protected virtual void ReceiveEnd(IAsyncResult iar)
{
//......其他处理...
OnReceive(this, new NetEventArgs(clientSession));//引发事件
}
}
窗体类:
public class FKSxpd : System.Windows.Forms.Form
{
//初始化
private NetEvent NRev;
private void FKSxpd_Load(object sender, System.EventArgs e)
{
NRev = new Ham.Net.NetEvent(cli_OnReceive);
CGather.cli.OnReceive += NRev;//CGather为一个全局类,cli定义为:public static TcpCli cli= new TcpCli();
}
//事件响应函数
private void cli_OnReceive(object sender, Ham.Net.NetEventArgs e)
{
lab_sts2.Text = "请输入序号:";//运行时这句是执行成功了的
txt_Scan.Focus();//就这句没执行成功,没反应..
}
}
运行环境:WinCE 4.1
程序编写工具:VS2003
程序编写语言:C#
哎,看来这论坛也不怎么行啊!
搞了半天,问题终于还是自己解决了