C#实现一个button控制两个textbox

想要实现这样的功能,有四个textbox,例如1+1=2,1占用一个textbox,+占用一个,另一个一又占用一个。我想点1时1输入第一个textbox,安+输入第二个,... 想要实现这样的功能,有四个textbox,例如1+1=2,1占用一个textbox,+占用一个,另一个一又占用一个。我想点1时1输入第一个textbox,安+输入第二个,再按1时输入到第三个,这样的应该如何实现。
就是如图这样
展开
 我来答
百度网友9f8ba65
2017-07-11 · TA获得超过1018个赞
知道小有建树答主
回答量:384
采纳率:86%
帮助的人:104万
展开全部

这其实就是一个状态机的问题。从你的描述可以得出,总共有两种状态。输入数字的状态和输入运算符的状态。一旦发生状态变化,输入框就换到下一个。

比如刚开始的时候用的第一个框,初始状态为数字状态。你输入1,状态没变,则不切换textbox。你输入+,通过判断可以知道这是运算符,并且当前的状态是数字态,这时候就发生了状态改变,就必须切换一个输入框了。我写一段伪代码给你看看。

int CurrentState=0;   //0表示数字态,1表示运算符
TextBox CurrentTextBox;
switch(push_value)
{
case 0-9:
    if(CurrentState==1)
    {
        //发生了状态变化,先切换状态再写入
        CurrentState=1;
        CurrentTextBox=NextTextBox();
    }
    CurrentTextBox.Text+=push_value;
    break;
case +、-、*、/、%:
    if(CurrentState==0)
    {
        //发生了状态变化,先切换状态再写入
        CurrentState=1;
        CurrentTextBox=NextTextBox();
    }
    CurrentTextBox.Text+=push_value;
    break;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式