C#中FOCUS无法让指定的空间获取焦点

在C#编程中,遇到一个子窗体焦点分配的难题。尝试让子窗体根据TEXTBOX1是否从父窗体接收值来决定焦点在TEXTBOX1还是TEXTBOX2。最初使用FOCUS方法始终只能将焦点设在TEXTBOX1,通过查阅资料发现需要在子窗体加载时先显示一次窗体。应用此修改后,焦点定位功能正常工作。
摘要由CSDN通过智能技术生成

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


 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值