Помогите с помощью TextBox и RichTextBox - PullRequest
1 голос
/ 19 августа 2011

Я делаю тип меню всех видов алгоритма сортировки. пользователь введет десять цифр в TextBox, выберет RadioButton, а затем нажмет кнопку «Создать». выходные данные должны показывать каждую строку о том, как работает алгоритм.

(Выбор сортировки)

пример ввода из TextBox: 9 6 8 7 5 2 3 1 10 4

выход:

1 6 8 7 5 2 3 9 10 4 \n
1 2 8 7 5 6 3 9 10 4 \n
1 2 3 7 5 6 8 9 10 4 \n
1 2 3 4 5 6 8 9 10 7 \n
1 2 3 4 5 6 7 9 10 8 \n
1 2 3 4 5 6 7 8 10 9 \n
1 2 3 4 5 6 7 8 9 10 \n

Я создал такую ​​программу на Java, но я использовал только JOptionPane. У меня нет никаких идей о том, как преобразовать его в C # и с помощью TextBox и RichTextBox.

Вот мои коды. Мой вывод всегда показывает много нулей.

   int[] nums = new int[10]; 
   int i, s, min, temp;

   private void EnterNum_TextChanged(object sender, EventArgs e)
   {
       string[] nums = EnterNum.Text.Split(' '); 
       //int[] nums = new int[] { int.Parse(EnterNum.Text) };
   } 

   private void GenerateButton_Click(object sender, EventArgs e)
   {
       if (SelectionRadio.Checked == true)
       {
           for (i = 0; i < nums.Length - 1; i++)
           {
               min = i; 
               // In each iteration, find the smallest number
               for (s = i + 1; s < nums.Length; s++)
               {
                   if (nums[min] > nums[s])
                   {
                       min = s;
                   }
               }
               if (min != i)
               {
                   temp = nums[i];
                   nums[i] = nums[min];
                   nums[min] = temp;
               }
               Display();
           }
       }
       Display();
   }

   private void ClearButton_Click(object sender, EventArgs e)
   {  
       richTextBox1.Clear();
   }

   public void Display()
   {
       int i;
       String numbers = "";
       for (i = 0; i < 10; i++)
         numbers += Convert.ToInt32(nums[i]).ToString() + " ";
       richTextBox1.AppendText(numbers);
   }

1 Ответ

1 голос
/ 19 августа 2011

перед запуском алгоритма вам нужно заполнить массив nums из текстового поля, вы видите нули, потому что по умолчанию массив заполнен нулями, и вы просто отображаете массив по умолчанию:

string[] numsInString = EnterNum.Text.Split(' ');
nums = new int[numsInString.Length];
for (int j = 0; j < numsInString.Length; j++)
{
    nums[j] = int.Parse(numsInString[j]);
}  
if (SelectionRadio.Checked == true)
//...

и отображаете приятное добавление«\ n» при добавлении текста:

richTextBox1.AppendText(numbers+"\n");

также как упомянул Мэтт, используйте .ToString(), ваши nums уже являются целыми числами, поэтому вам не нужно преобразовывать int в int:

numbers += nums[i].ToString() + " ";
...