输出在标签而不是消息框中
本文关键字:消息 标签 输出 | 更新日期: 2023-09-27 18:23:48
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
try
{
int a, b;
bool prime = true;
a = int.Parse(textBox1.Text);
b = int.Parse(textBox2.Text);
int i = a;
while (i < b)
{
for (int j = 2; j <= i; j++)
{
if (i != j && i % j == 0)
{
prime = false;
break;
}
}
if (prime)
{
string ans = i.ToString();
MessageBox.Show(ans);
}
prime = true;
i++;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
}
程序显示从开始(文本框1(到结束(文本框2(的质数您可以在两个文本框中输入任何数字,它将显示用户在文本框 1 和文本框 2 中输入的给定范围内的质数。我的问题是如何将输出放在标签而不是消息框中?它的输出只显示一个数字,每当我改变时它都不能显示多个数字
MessageBox.Show(ans);
自
label4.Text = ans;
和
MessageBox.Show(ex.Message);
自
label4.Text=ex.Message;
我只使用了一个标签,它是label4
.请帮忙。
正确理解您的问题,并不是您在弄清楚如何设置Label.Text
属性本身时遇到麻烦,而是您在一次显示多个数字时遇到问题。
不幸的是,您的问题没有向我们展示您在实现这一目标方面所做的尝试。 即您发布的代码仍然使用 MessageBox
,而不是您为实现目标所做的任何其他尝试(不成功(。因此,很难知道什么是可取甚至可接受的方法。
一种选择是将所有计算的数字放入单个Label
控件中。例如:
private void button1_Click(object sender, EventArgs e)
{
try
{
int a, b;
bool prime = true;
List<int> results = new List<int>();
a = int.Parse(textBox1.Text);
b = int.Parse(textBox2.Text);
int i = a;
while (i < b)
{
for (int j = 2; j <= i; j++)
{
if (i != j && i % j == 0)
{
prime = false;
break;
}
}
if (prime)
{
results.Add(i);
}
prime = true;
i++;
}
label1.Text = string.Join(", ", results);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
或者,也许您确实希望单独显示每个数字,但您希望代码显示该数字的时间足够长,以便用户在继续下一个数字之前看到它:
private async void button1_Click(object sender, EventArgs e)
{
try
{
int a, b;
bool prime = true;
a = int.Parse(textBox1.Text);
b = int.Parse(textBox2.Text);
int i = a;
while (i < b)
{
for (int j = 2; j <= i; j++)
{
if (i != j && i % j == 0)
{
prime = false;
break;
}
}
if (prime)
{
label1.Text = i.ToString();
await Task.Delay(1000);
}
prime = true;
i++;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
这些只是众多合理选择中的两个。例如,您可能希望以ListBox
或可滚动的多行TextBox
显示结果。如果以上方法都没有解决您的问题,请编辑您的问题,以便更清楚地解释您尝试过的内容以及您希望代码执行的操作。
欢迎来到堆栈溢出!
-
将一个名为
MyLabel
的Label
控件添加到窗体中。(也可以是任何名称( -
将
MessageBox.Show(ex.Message);
更改为MyLabel.Text = ex.Message;
在表单中添加一个标签,然后简单地放置(假设它被命名为 label1(
label1.Text=ans;
.文本是大多数控件的属性。您已经在整数解析中使用了文本框的"get"访问器。 文本定义一个"集",可以在 c# 中使用它来更改显示的文本。
在此处阅读有关属性的更多信息,因为它们在 C# 中广泛使用