Не удается заставить метод Clear () textbox работать - PullRequest
0 голосов
/ 10 апреля 2020

У меня проблема с функцией Clear () в C#. В этом небольшом приложении пользователь должен нажать кнопку «Новая история» и получить историю, созданную из случайных слов. Это приложение использует Windows форм и C#. В то время как создание / отображение истории работает должным образом, я хотел попытаться очистить текстовое поле, содержащее отображаемую историю, чтобы за один раз показывался только один. Происходит то, что новая история добавляется к тексту, который уже находится в текстовом поле, вместо того, чтобы заменять его по назначению.

Это для задания, поэтому, если возможно, просто дайте мне знать, что я ' Я делаю неправильно, вместо того, чтобы дать мне код, чтобы исправить это.

Это, вероятно, простая ошибка, но я пробовал следующее и не могу заставить его работать как задумано:

txtStory.Clear();
txtStory.Text = String.Empty;
txtStory.Text = "";

Вот код, с которым у меня проблема:

private void newStoryToolStripMenuItem_Click(object sender, EventArgs e)
        {
            // clear text and write a new story (through menu)
            txtStory.Clear();
            txtStory.Text = StoryBuilder.WriteStory();
        }

А вот метод, который вызывается (использует 2 предложения StringBuilders и историю, и извлекает из короткого массива слов сформируйте каждое предложение):

public static string WriteStory()
        {
            // set random number
            Random r = new Random();
            // Loop through 0-9
            for (var i = 0; i < 10; i++)
            {
                // set index to random number based on article array
                int index = r.Next(0, article.Length);
                // capitalize first letter and add to sentence
                sentence.Append(char.ToUpper(article[index][0]) + article[index].Substring(1));
                // append empty space to sentence
                sentence.Append(" ");
                // new random number based on noun array
                index = r.Next(0, noun.Length);
                // append noun to sentence
                sentence.Append(noun[index]);
                // append empty space to sentence
                sentence.Append(" ");
                // new random number based on verb array
                index = r.Next(0, verb.Length);
                // append verb to sentence
                sentence.Append(verb[index]);
                // append empty space to sentence
                sentence.Append(" ");
                // new random number based on preposition array
                index = r.Next(0, preposition.Length);
                // append preposition to sentence
                sentence.Append(preposition[index]);
                // append empty space to sentence
                sentence.Append(" ");
                // new random number based on article array
                index = r.Next(0, article.Length);
                // append article to sentence
                sentence.Append(article[index]);
                // append empty space to sentence
                sentence.Append(" ");
                // new random number based on noun array
                index = r.Next(0, noun.Length);
                // append noun to sentence
                sentence.Append(noun[index]);
                // append period to the end of each sentence, start new sentence with a space
                sentence.Append(". ");
                // append sentence to story
                story.Append(sentence);
                sentence.Clear();
            }
            return story.ToString();
        }

Любая помощь будет принята с благодарностью.

...