今天在写一个父窗体弹出子窗体的时候,想让子窗体中做一个判断,如果子窗体TEXTBOX1从父窗体获取了值,那就让焦点定在子窗体的textbox2中,如果textbox1没有获得父窗体传来的值就让焦点定位到textbox1控件中,用到了focus,但是一开始发现无论怎样,focus都只定位到了textbox1上,而没有根据条件变化定位到textbox2中,后来看到别人说是需要再load中先让show一下子窗体。修改后果然正常,把两段代码贴出来对比下。
private void MMXG_Load(object sender, EventArgs e)
{
T_CARDNUM.Text = cardnumber;
if (T_CARDNUM.Text !="")
{
T_CARDMM.Focus();
}
else
{
T_CARDNUM.Focus();
}
}
下面是修改后的
private void MMXG_Load(object sender, EventArgs e)
{
this.Show();//就少了这么一句
T_CARDNUM.Text = cardnumber;
if (T_CARDNUM.Text !="")
{
T_CARDMM.Focus();
}
else
{
T_CARDNUM.Focus();
}
}
在C#编程中,遇到一个子窗体焦点分配的难题。尝试让子窗体根据TEXTBOX1是否从父窗体接收值来决定焦点在TEXTBOX1还是TEXTBOX2。最初使用FOCUS方法始终只能将焦点设在TEXTBOX1,通过查阅资料发现需要在子窗体加载时先显示一次窗体。应用此修改后,焦点定位功能正常工作。
1195

被折叠的 条评论
为什么被折叠?



