繁体   English   中英

遍历数组,显示TextBox并等待ENTER

[英]Loop through array, show TextBox and wait for ENTER

我有一个视图,用户应在其中使用键盘选择一些选项。

然后必须填充动态值。 对于每个值,将打开一个文本框(每次都应相同),如果用户填写了内容,则按Enter键,将保存值,并使用相同的过程填充循环中的下一个元素。

我不想为此打开一个模式对话框。

这里是一些伪代码:

// ... some code
MyObject o = new MyObject();
foreach(entryToBeFilled in o.myList){
    mySampleInputBox.Text = ""
    mySampleInputBox.Visible = True;

    // ... some sort of waiting until user hits ENTER inside the InputBox

    entryToBeFilled = mySampleInputBox.Text;
}
mySampleInputBox.Visible = False;

// ... some code

我不知道如何解决这个要求。

我会做这样的事情:

private int _listIndex = -1;
private IList<string> _listToFill = null;

private void StartFilling(IList<string> myList)
{
    if (!myList.Any())
        return;
    _listToFill = myList;
    _listIndex = 0;
    mySampleInputBox.Text = "";
    mySampleInputBox.Visible = true;
    mySampleInputBox.Focus();
}

private void mySampleInputBox_KeyDown(object sender, KeyEventArgs e)
{
    if (e.KeyCode != Keys.Enter)
        return;
    var tb = (TextBox)sender;
    _listToFill[_listIndex++] = tb.Text;
    tb.Text = "";
    if (_listIndex >= _listToFill.Count())
    {
        tb.Visible = false;
        _listIndex = -1;
        _listToFill = null;
    }
}

每当您要开始填充(并显示TextBox )时:

MyObject o = new MyObject();    
StartFilling(o.myList);

综上所述,这确实是进行模态对话的理想人选,除非您在问题中没有说过什么,否则我会继续讨论

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM