经过了十几周的WinForm学习,对于.NET Framework有了一定的了解,并加上项目的进行,让我对这门课有了更深的了解。而且老师在课堂上也会给我们拓展一些书本里面没有的知识点,以此来拓宽我们的知识面,并且他还会跟我们分享他的一些工作经历,让我们更通俗易懂的明白这门课应该怎么样学最简单,最好理解。下面我将分两个部分进行分享。
1.WinForm的简单介绍
WinForm是Windows Form的简称,是基于.NET Framework平台的客户端(PC软件)开发技术,一般使用C#编程。WinForm具有功能强大、操作方便、使用安全等特点。WinForm基于C#语言,可以创建Windows窗体应用程序,每个窗体都由一个窗体控件组成,窗体控件可以包含按钮、文本框、标签等控件。通过这些控件,可以设计出各种功能的Windows应用程序。此外,WinForm还具有可视化设计的特点,可以通过拖拽控件的方式快速构建应用程序界面,大大提高了开发效率。同时,WinForm还支持第三方UI库或自定义控件的接入,进一步丰富了桌面应用开发的可能性。而我们主要学习的就是.NET Framewoek桌面运用,用它来完成我们相对应的简单功能。
2.WinForm的运用
当我们拿到一个项目的时候,首先会先设计它的登录和注册页,这时候我们就要懂得如何设置页面的跳转,并写下如下代码:
①两个Form界面之间跳转
Form2 form2=new Form2();//需跳转的界面
this.Hide();//隐藏当前界面
form2.ShowDialong();//显示跳转的页面
this.Dispose();//销毁对象,窗体对象被回收了,就不存在了,Dispose函数释放的资源不再使用
②TabControl界面之间的跳转
int index=this.tab_Control.SelectedIndex;
if(index<this.tab_Control.TabPages.Count)
this.tab_Control.SelectedIndex=index+1;//跳转到下一页
if(index>0)
this.tab_Control.SelectedIndex=index-1;//跳转到上一页
然后我们就会开始布局正文里面的内容(像增删改查的设置),这时我们就要知道如何将文本里面的内容和数据库连接到一起。其布局如下:
其中,查询、添加、修改、删除是我们使用的最频繁的,所以我们首先要明白其思路才好进行下一步。 要想写好这是个内容,首先我们要明白SQL Server中的这些函数的基本语法。如:
查询:select * from 表名
添加:insert 表名 [(字段名)] values(内容)
修改:update 表名 set 修改内容 [where 修改对象]
删除:delete 表名 where 删除对象
然后,我们就要依次将这些语句写进对应的按钮里面,其代码如下:
//查询
//根据员工编号,部门名称进行查询
public void EmployeeID()
{
dataGridView1.Rows.Clear();//清空旧数据
EmployeeInfo employeeInfo = new EmployeeInfo();
string sql = $"select * from employee where eno='{txtInformation.Text}' or ename like '%{txtInformation.Text}%' " +
$"or department like'%{txtInformation.Text}%'";//SQL语句
IDataReader dc = employeeInfo.read(sql);
while (dc.Read())
{
dataGridView1.Rows.Add(dc[0].ToString(),
dc[1].ToString(),
dc[2].ToString(),
dc[3].ToString(),
dc[4].ToString(),
dc[5].ToString(),
dc[6].ToString()
);
}
dc.Close();
employeeInfo.EmployeeInfoClose();
}
//添加
private void btnadd_Click(object sender, EventArgs e)
{
//设置某些文本框不许为空
if(txteno.Text!="" && txtename.Text!="" && txtdepartment.Text!="" && txtphone.Text != "")
{
//添加员工信息
EmployeeInfo employeeInfo = new EmployeeInfo();
string sql = $"insert into employee values('{txteno.Text}','{txtename.Text}','{txtesex.Text}','{txtesalary.Text}'," +
$"'{txtdepartment.Text}','{txtphone.Text}','{txtQQ.Text}')";
int n = employeeInfo.Execute(sql);
if (n > 0)
{
MessageBox.Show("信息添加成功");
}
else
{
MessageBox.Show("信息添加失败");
}
//清空文本框
txteno.Text = "";
txtename.Text = "";
txtesex.Text = "";
txtesalary.Text = "";
txtdepartment.Text = "";
txtphone.Text = "";
txtQQ.Text = "";
}
else
{
MessageBox.Show("编号,姓名,部门,联系电话不允许为空!");
}
}
//修改
private void btnUpdate_Click(object sender, EventArgs e)
{
//利用传参将数据库里面的内容传到修改页面中
try
{
string eno= dataGridView1.SelectedRows[0].Cells[0].Value.ToString();
string ename = dataGridView1.SelectedRows[0].Cells[1].Value.ToString();
string esex = dataGridView1.SelectedRows[0].Cells[2].Value.ToString();
string esalary = dataGridView1.SelectedRows[0].Cells[3].Value.ToString();
string department = dataGridView1.SelectedRows[0].Cells[4].Value.ToString();
string phone = dataGridView1.SelectedRows[0].Cells[5].Value.ToString();
string QQ = dataGridView1.SelectedRows[0].Cells[6].Value.ToString();
FrmUpdate frmUpdate = new FrmUpdate(eno,ename,esex,esalary,department,phone,QQ);
frmUpdate.ShowDialog();
EmployeeTable();//刷新数据
}
catch
{
MessageBox.Show("error");
}
}
//删除
private void btnDelete_Click(object sender, EventArgs e)
{
//删除
try
{
string eno = dataGridView1. SelectedRows[0].Cells[0].Value.ToString();//获取员工信息
//toolStripLabel2.Text = eno + dataGridView1.SelectedRows[0].Cells[1].Value.ToString();
DialogResult dr = MessageBox.Show("确定删除该信息吗?", "信息提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
if (dr == DialogResult.OK)
{
string sql = $"delete from employee where eno='{eno}'";
EmployeeInfo employeeInfo = new EmployeeInfo();
if (employeeInfo.Execute(sql) > 0)
{
MessageBox.Show("信息删除成功");
EmployeeTable();//删除之后可以直接展示删除后的数据
}
else
{
MessageBox.Show("信息删除失败!+sql");
}
employeeInfo.EmployeeInfoClose();
}
}
catch
{
MessageBox.Show("请先在表格中选中要删除的信息!", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
你的数据库里面有多少个字段你就写多少个上去就好了,而且命名也要规范一点,这样方便后期写项目的时候一目了然。 其他的内容我就不细说了,因为本人了解的也不是很多。
总之,对于WinForm我想说的是,能多动手就要多动手,因为只有这样才能把其中的知识点学得更牢,只有自己理解了你才算真正的了解它。Winform是一个非常实用的开发技术,它可以帮助开发者快速地创建和管理用户界面。通过实践、查阅文档和理解知识点的内在逻辑,可以更好地掌握Winform的开发技巧和方法。同时,也要不断地扩展自己的知识面,以适应技术的不断发展和变化。