Как я могу отобразить больше результатов в RichTextBox? - PullRequest
1 голос
/ 02 мая 2011

Я новичок в C #, поэтому, пожалуйста, будьте нежны со мной.

У меня возникла проблема при попытке отобразить больше результатов в расширенном текстовом поле, поскольку оно может отображать только один результат одновременно. Но я хотел бы отобразить следующий результат, когда переключатели уже сбрасываются, а предыдущий результат также должен оставаться в поле расширенного текста. Ниже моя кодировка:

for(int i=0,i<30;i++)
{
  if(symptom1.Checked && symptom2.Checked)
  {
     Result.Text="";
     Result.Text += "Your Disease is: "+"Meningiomas";
  }

  if(symptom7.Checked && symptom8.Checked)
  {
     Result.Text="";
     Result.Text += "Your Disease is: "+"Pituitary Tumor";
  }
}

Ответы [ 5 ]

0 голосов
/ 02 мая 2011

Вы имеете в виду, что у бедного несчастного могут быть симптомы 1, 2, 7 и 8;и поэтому, вероятно, имеет два типа опухоли одновременно:

for(int i=0,i<30;i++) {
  Result.Text="Your Disease is:";
  if(symptom1.Checked && symptom2.Checked) {
     Result.Text += " Meningiomas";
  }
  if ( symptom7.Checked && symptom8.Checked ) {
     Result.Text += " Pituitary Tumor";
  }
}

Приветствия.Кит.

PS: Ваш вопрос действительно не очень ясен.

0 голосов
/ 02 мая 2011
for(int i=0,i<30;i++)
{
 if(symptom1.Checked && symptom2.Checked)
  {
     //Result.Text=""; remove this
     Result.Text += "Your Disease is: "+"Meningiomas";
  }

if(symptom7.Checked && symptom8.Checked)
{
     //Result.Text=""; remove this
     Result.Text += "Your Disease is: "+"Pituitary Tumor";
}
}

Result.Text = "";приводит к тому, что ваши существующие данные заменяются пустым текстом, удалите его, и все будет в порядке с вашими результатами.

Надеюсь, это поможет.

0 голосов
/ 02 мая 2011

Вы можете попробовать это:

richTextBox1.AppendText(Environment.NewLine + "Sample text");
0 голосов
/ 02 мая 2011

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

Result.Text="";

Поскольку вы устанавливаете свойство Text равным пустой строке (""), оно очищает все, что уже существует, по существу стираятекстовое поле.

Если вы просто удалите эту строку из своего кода, вы должны увидеть именно то, что вы хотите.Следующая строка добавляется к тому, что уже есть.Однако это просто прикрепит его к тому, что уже есть.
Он не вставит его в новую строку.Чтобы сделать это, вы должны вставить разрыв строки в начале:

for (int i = 0; i < 30; i++)
{
   if (symptom1.Checked && symptom2.Checked)
   {
      Result.Text += Environment.NewLine + "Your Disease is: " + "Meningiomas";
   }

   if (symptom7.Checked && symptom8.Checked)
   {
      Result.Text += Environment.NewLine + "Your Disease is: " + "Pituitary Tumor";
   }
}

(Обратите внимание, что Environment.NewLine - это то же самое, что и escape-последовательности \r\n. Он просто вставляет новыйТо же в любом случае.)

Если вы хотите очистить текущее содержимое текстового поля сначала , а затем добавить все значения в цикл for, вам нужнодобавить строку кода обратно в начало функции, перед циклом для .Стилистически, я бы также написал это как string.Empty, а не "", но это не имеет значения.

Result.Text = string.Empty;
0 голосов
/ 02 мая 2011

Если вы не хотите удалять предыдущий контент, удалите этот код:

Result.Text="";

Я думаю, что вы хотите достичь:

  1. Очистить RichTextBox
  2. Записать все соответствующие заболевания в RichTextBox

Это можно сделать с помощью следующего кода:

Result.Text="";

for(int i = 0; i < 30; ++i)
{
    if(symptom1.Checked && symptom2.Checked)
    {
        Result.Text += "Your Disease is: "+"Meningiomas";
    }

    if(symptom7.Checked && symptom8.Checked)
    {
        Result.Text += "Your Disease is: "+"Pituitary Tumor";
    }
}
...