填写后不允许编辑文本框,只允许输入新值

时间:2015-04-28 19:51:14

标签: vb.net visual-studio-2013

我有一个数学计算程序 我想通过按Tab键在TextBoxes之间循环,它必须在TextBox中选择值 所以我只能用我的程序输入新值(我不想让退格键删除当前值)。

目前,该值右侧有一个闪烁的光标。

注意:我正在使用Visual Studio 2013

2 个答案:

答案 0 :(得分:0)

您可以通过修改只读行为使文本框成为只读。即。

textbox1.readonly = true

然后你只需要决定如何/何时解雇这个坏孩子。我的问题是1.)你有多少个文本框? 2.)你将要投入的价值范围是多少(如果有的话)? 3.)我是否理解正确:您想要通过文本框标签,但只能编辑空白的文本框?如果是这样,可能会这样吗?

String[] answers = { "red", "green", "blue" };
private int _position = 0;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.learn_main);

    Button btnNext = (Button) findViewById(R.id.button2);
    Button btnBack = (Button) findViewById(R.id.button1);

    final TextView tv = (TextView) findViewById(R.id.textView1);
    tv.setText(answers[_position]);



    // INITIALIZING OVER
    btnNext.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {


            if (_position < answers.length - 1) {
                _position++;
            } else {
                _position = 0;
            }
            tv.setText(answers[_position]);

        }

    });

    btnBack.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {

            if (_position > 0) {
                _position--;
            } else {
                _position = answers.length - 1;
            }
            tv.setText(answers[_position]);

        }

    });

}

这里的问题是:1 - 如果输入拼写错误,你就无法编辑一个值(除非你在点击标签之前更改了它)2 - 你必须为每个单独的文本框重复这个代码

答案 1 :(得分:0)

当文本框获得焦点时使用.SelectAll

Private Sub TextBox1_GotFocus(sender As Object, e As System.EventArgs) Handles TextBox1.GotFocus
        TextBox1.SelectAll()
End Sub