
看你窗体设计,应该是想分别输入学生姓名,然后"确定"保存姓名,之后点击"已登记学生"显示所有已登记的信息吧?既然用Winform建议就不用console那个思路,建议改成如下:
using Systemusing System.Collections.Generic
using System.Windows.Forms
namespace WindowsForms
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent()
label1.Text = "请输入第1个学生的姓名:"//label1是你那个输入学生数量的标签
}
private List<string> names = new List<string>()
/// <summary>
/// "确定"按钮事件
/// </summary>
private void button1_Click(object sender, EventArgs e)
{
string name = textBox1.Text.Trim()
names.Add(name)
label1.Text = $"请输入第{names.Count + 1}个学生的姓名:"
}
/// <summary>
/// "已登记学生"按钮事件
/// </summary>
private void button2_Click(object sender, EventArgs e)
{
MessageBox.Show($"已登记的学生姓名为:{string.Join(",",names)}")
}
}
}
执行效果:
如果真要按着先输入学生总数,再显示"请输入第几个的学生名字"这种设计,需要在窗体上再加一个TextBox控件用以接受学生名信息,再加个按钮用以保存学生名进数组,winform用控件来显示或保存值,而不是for循环+Readline这种方式,这样是Console采用的。那个窗口应该是下面这样的。
记得把names这个数组不要放在Click事件里,否则无法保存下来的。有问题再问吧
你活着的目的就是为了实现?人吃饭能饱,吃草一样能饱,为什么不去吃草?
如果不用实体类,你喜欢用什么?DataSet?
首先DataSet属于弱类型,这意味着无论何时从 DataSet 中检索值,值都以 System.Object 的形式返回,你需要对这种值进行转换。不幸的是,失败不是在编译时发生,而是在运行时发生.
还有,DataSet缺少抽象,开发人员必须了解其基础架构.这是和实体类无法相比的.
最后,我们要追求面向对象.于是就有了实体类的使用,有人总结了其优点:
1、可以让我们利用继承和封装等OO技术;
2、可以添加自定义行为;
3、属于强类型,可以获得代码自动完成功能(IntelliSense);
4、属于强类型,不太需要容易出错的强制类型转换。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)