//从服务端接收到待生成的TextBox个数
string recvString=""; //Form_Load()
{ Thread thread = new Thread(new ThreadStart(targett));
thread.Start();}
public delegate void MyInvoke(string str); //str 即为接收到的字符串
private void targett()
{
while (bb) //bb=true;
{
Byte[] bbb = new Byte[1024];
string aa = "";
int bytes;
bytes = sock.Receive(bbb, bbb.Length, 0);
aa += System.Text.Encoding.Default.GetString(bbb, 0, bytes); recvString += aa; //使用委托传值给新建窗体
MyInvoke myIn = new MyInvoke(CreateNewForm);
this.BeginInvoke(myIn, new object[] { recvString });
}
}//刷新当前窗体,根据传入的字符串生成新窗体public CreateNewForm(String str)
{
this.Controls.Clear();int Num=Convert.ToInt32(str); //转化为数字 TextBox []tb=new TextBox[Num];
for(int i=0;i<Num;i++)
{
tb[i].Name="TextBox"+i.ToString();
tb[i].Location = new Point(100,10*i+10);
tb[i].TabIndex = i;this.Controls.Add(tb[i]);}
this.Activate(); //激活当前窗体为主窗体
tb[0].Focus(); //第一个TextBox获取焦点
}
------------------------------------------------------------
问题:VS2005下;以上操作可以正常接收刷新当前窗体,并激活当前窗体,但是无论如何获取到的第一个TextBox无法获取输入焦点,通过在窗体上点击鼠标才可以!在网上搜索结果说是委托不能对新窗体操作,不知道到怎么回事,请高手赐教!
string recvString=""; //Form_Load()
{ Thread thread = new Thread(new ThreadStart(targett));
thread.Start();}
public delegate void MyInvoke(string str); //str 即为接收到的字符串
private void targett()
{
while (bb) //bb=true;
{
Byte[] bbb = new Byte[1024];
string aa = "";
int bytes;
bytes = sock.Receive(bbb, bbb.Length, 0);
aa += System.Text.Encoding.Default.GetString(bbb, 0, bytes); recvString += aa; //使用委托传值给新建窗体
MyInvoke myIn = new MyInvoke(CreateNewForm);
this.BeginInvoke(myIn, new object[] { recvString });
}
}//刷新当前窗体,根据传入的字符串生成新窗体public CreateNewForm(String str)
{
this.Controls.Clear();int Num=Convert.ToInt32(str); //转化为数字 TextBox []tb=new TextBox[Num];
for(int i=0;i<Num;i++)
{
tb[i].Name="TextBox"+i.ToString();
tb[i].Location = new Point(100,10*i+10);
tb[i].TabIndex = i;this.Controls.Add(tb[i]);}
this.Activate(); //激活当前窗体为主窗体
tb[0].Focus(); //第一个TextBox获取焦点
}
------------------------------------------------------------
问题:VS2005下;以上操作可以正常接收刷新当前窗体,并激活当前窗体,但是无论如何获取到的第一个TextBox无法获取输入焦点,通过在窗体上点击鼠标才可以!在网上搜索结果说是委托不能对新窗体操作,不知道到怎么回事,请高手赐教!
解决方案 »
- datagridview 自动排序
- 请问一下,对C# winform程序进行内存泄露方面的检测,有哪些工具可以用啊?(解决给分)
- 多线程操作控件时,输入法出现问题
- 请大家帮忙看一下,在这个XML中如何得到指定的元素的所有子元素的值
- 表格添加合计功能 ,有点问题
- 正则表达式里如何判断是否含"["或者"]"
- 高手帮忙~!!!.Net2.0里给WebBrower浏览页面的RadioButton、CheckBox赋值问题
- 我用DevExpress.XtraReports生成一个报表,里面含有图像,转成Excel文档后,为什么看不见图像呢?
- C#中如何控制将窗体整个内容变灰?
- winform里有没有类似FindControl()的方法?
- 刚学C# 小弟不会用comboBox选择功能,大哥们教教我哈!
- 怎样将接受端异步参数IAsyncResult asyn中asyn转换成字节byte[]型
{
tb[i]=new TextBox(); //加入这一句
tb[i].Name="TextBox"+i.ToString();
tb[i].Location = new Point(100,10*i+10);
tb[i].TabIndex = i;this.Controls.Add(tb[i]);}