今天在写一个父窗体弹出子窗体的时候,想让子窗体中做一个判断,如果子窗体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();
}
}