Как мне разрешить пользователю вводить, сколько раз richtextbox вставляет сообщение? - PullRequest
0 голосов
/ 15 октября 2019

В настоящее время у меня есть форма, в которой при вводе в Richtextbox сообщение вставляется 1000 раз. Я пытаюсь получить форму, где вы можете ввести в текстовое поле, сколько раз вы хотите, чтобы сообщение было вставлено.

private void richTextBox1_TextChanged(object sender, EventArgs e)
    {
        richTextBox.Text = "Hello world\r\n";
        for (int i = 0; i < 10; ++i) richTextBox.Text += richTextBox.Text;
    }

1 Ответ

0 голосов
/ 15 октября 2019

Это один из тех вопросов, которые так просты, я не уверен, что даже правильно понял вашу проблему.

  1. Вам нужен элемент пользовательского интерфейса, чтобы набрать его. Другое текстовое поле работаетконечно. Но есть также элемент управления NumericUpDown .

  2. . Строковый вход разбирается на Integer, если только элемент управления не предоставляет целое число. Используйте TryParse () .

  3. Вы используете этот проанализированный номер вместо константы 10.

В качестве заключительного примечания, вам следует избегать выполнения циклических операций на элементах управления. Написание пользовательского интерфейса стоит дорого. Если вы делаете это только один раз для каждого события, инициируемого пользователем, вы не заметите этого. Но сделайте это в цикле, и вы заметите это. Я даже сделал пример кода, чтобы продемонстрировать, что:

using System;
using System.Windows.Forms;

namespace UIWriteOverhead
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        int[] getNumbers(int upperLimit)
        {
            int[] ReturnValue = new int[upperLimit];

            for (int i = 0; i < ReturnValue.Length; i++)
                ReturnValue[i] = i;

            return ReturnValue;
        }

        void printWithBuffer(int[] Values)
        {
            textBox1.Text = "";
            string buffer = "";

            foreach (int Number in Values)
                buffer += Number.ToString() + Environment.NewLine;
            textBox1.Text = buffer;
        }

        void printDirectly(int[] Values){
            textBox1.Text = "";

            foreach (int Number in Values)
                textBox1.Text += Number.ToString() + Environment.NewLine;
        }

        private void btnPrintBuffer_Click(object sender, EventArgs e)
        {
            MessageBox.Show("Generating Numbers");
            int[] temp = getNumbers(10000);
            MessageBox.Show("Printing with buffer");
            printWithBuffer(temp);
            MessageBox.Show("Printing done");
        }

        private void btnPrintDirect_Click(object sender, EventArgs e)
        {
            MessageBox.Show("Generating Numbers");
            int[] temp = getNumbers(1000);
            MessageBox.Show("Printing directly");
            printDirectly(temp);
            MessageBox.Show("Printing done");
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...