如何在RichTextBox上显示更多结果?

时间:2011-05-02 09:04:55

标签: c# .net winforms radio-button richtextbox

我是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 :(得分:0)

如果您不想删除以前的内容,请删除此代码:

Result.Text="";

我想,你想要达到的目标是:

  1. 清除RichTextBox
  2. 将所有匹配的疾病写入RichTextBox
  3. 可以使用以下代码完成此操作:

    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";
        }
    }
    

答案 1 :(得分:0)

你可以试试这个:

richTextBox1.AppendText(Environment.NewLine + "Sample text");

答案 2 :(得分:0)

您一次只能显示一个结果的原因是,在添加下一行之前,首先清除文本框的当前内容。具体来说,这行代码是罪魁祸首:

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与转义序列\r\n是一回事。它只是插入一个新行。两种方式相同。)

如果要清除文本框的当前内容首先,然后在for循环中追加所有值,则需要在<在 for 循环之前,函数的em>开始。在风格上,我还会将其写为string.Empty而不是"",但这并不重要。

Result.Text = string.Empty;

答案 3 :(得分:0)

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 = “”;导致您的现有数据被替换为空文本,删除它,您的结果应该没问题。

希望这有帮助。

答案 4 :(得分:0)

你的意思是一个可怜的不幸者可能有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:你的问题确实不太清楚。