WinForm学习心得

        经过了十几周的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的开发技巧和方法。同时,也要不断地扩展自己的知识面,以适应技术的不断发展和变化。

  • 25
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值