C#.NET:在标签中显示字符数组的前100个元素,然后在键入时一次将一个元素移动到只读文本框中?

C#.NET:在标签中显示字符数组的前100个元素,然后在键入时一次将一个元素移动到只读文本框中?,c#,arrays,.net,winforms,inputstream,C#,Arrays,.net,Winforms,Inputstream,我正在做我在C#NET中作为windows窗体的合作项目的第一个项目。这是一个打字游戏,将加载到一个.txt文件中。然后.txt文件的内容将显示在标签中。问题是,只能显示前100个字符。然后用户必须“键入”显示的内容。对于他们键入的每个正确字符,该字符将从标签中删除并移动到只读文本框。然后更新原始标签,以便在最后加载一个额外的字符(因为现在标签中只有99个字符-我们总是想要100个)。如果键入错误的字符,则不会发生任何情况 除了到目前为止我已经完成的步骤——从.txt文件创建一个char数组之外

我正在做我在C#NET中作为windows窗体的合作项目的第一个项目。这是一个打字游戏,将加载到一个.txt文件中。然后.txt文件的内容将显示在标签中。问题是,只能显示前100个字符。然后用户必须“键入”显示的内容。对于他们键入的每个正确字符,该字符将从标签中删除并移动到只读文本框。然后更新原始标签,以便在最后加载一个额外的字符(因为现在标签中只有99个字符-我们总是想要100个)。如果键入错误的字符,则不会发生任何情况

除了到目前为止我已经完成的步骤——从.txt文件创建一个char数组之外,我根本不知道如何进行这项工作。这是我的代码(我卡在上面的潜艇是最低的):

看看这个,你必须将你按下的按键注册为触发的事件。然后调用的方法只需对照数组中的第一个字符进行检查

因此,将数组存储在表单上或作为静态变量在事件方法中访问它,然后简单地将第一个charArray元素与接收到的输入进行比较(我猜可用的属性“Keys.O”包含一些字符串作为输出,如果没有,则必须进行切换以处理每个键。然后简单地比较它

if(e.KeyCode.ToLower()==charArray[0]){//do stuff}

如果条件为true,则将第一项设置为下一次运行时可以跳过/忽略的特定字符,或者将数组复制到除第一项之外的新字符

Text将始终显示数组的前100个字符(或跳过x项,具体取决于您可能使用的替换特殊字符)


我希望这能帮助您找到前进的方向。

非常感谢您。我一定会尝试一下。
        string FileContent = string.Empty;
        string FilePath = string.Empty;

        //File Browser and Uploader
        private void btnOpenFile_Click(object sender, EventArgs e)
        {
            using (OpenFileDialog openFileDialog = new OpenFileDialog())
            {
                //Filters the file types so we can only choose .txt files.
                openFileDialog.InitialDirectory = "c:\\";
                openFileDialog.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
                openFileDialog.FilterIndex = 2;
                openFileDialog.RestoreDirectory = true;

                if (openFileDialog.ShowDialog() == DialogResult.OK)
                {
                    //Get the path of specified file.
                    FilePath = openFileDialog.FileName;

                    //Read the contents of the file into a stream.

                    var fileStream = openFileDialog.OpenFile();

                    using (StreamReader reader = new StreamReader(fileStream))
                    {
                        FileContent = reader.ReadToEnd();
                    }
                }
            }

            //Loader for the Input Stream
            InputStreamLoader();

        }

        //Applies File Text to Input Stream
        private void InputStreamLoader()
        {
            char[] characters = FileContent.ToCharArray();                            
        }