桌面应用程序开发的学习心得

桌面应用程序开发这门课程其实就是一门学习WinForm的课程

  学习WinForm是我的一次非常宝贵的经历。WinForm是一种基于Windows操作系统的用户界面应用程序开发框架,它提供了一套类库和工具,可以轻松创建各种类型的Windows应用程序。
  首先,我要感谢微软公司为我们提供了这样一个强大且易用的开发框架。WinForm具有丰富的控件库,包括按钮、文本框、列表框、菜单等,这些控件可以快速地建立用户界面,使我们可以专注于业务逻辑的实现而不用过多考虑界面设计的问题。
  其次,WinForm提供了一套事件驱动的编程模型,这使得我们可以轻松地响应用户的操作。每个控件都可以绑定相应的事件处理函数,当用户与控件交互时,相应的事件就会被触发,我们可以在事件处理函数中编写相应的代码来处理用户的操作。通过事件驱动模型,我们可以实现与用户的交互,使程序更加灵活和易用。
  另外,WinForm还提供了丰富的布局和容器控件,使得我们可以轻松地管理多个控件的位置和大小。通过使用布局控件,我们可以自动调整控件的位置和大小,从而实现更加灵活和美观的界面布局。例如,我们可以使用Panel控件将一组相关的控件进行组合,并根据需求进行布局,实现更加复杂的界面设计。
  此外,WinForm还支持数据绑定和数据验证,使得我们可以轻松地将数据与控件进行关联,并对输入的数据进行验证,确保数据的有效性和一致性。通过数据绑定,我们可以实现数据与界面的实时同步,当数据改变时,界面会自动更新,从而提升用户体验。同时,WinForm提供了各种验证控件和机制,例如输入验证、范围验证等,可以在用户输入数据时进行验证,及时发现错误并提醒用户进行修正。
  最后,WinForm还提供了强大的自定义控件和样式支持,使得我们可以根据项目需求定制化控件的外观和行为。通过继承已有的控件类,我们可以创建自己的自定义控件,并重写和扩展控件的各种方法和属性,实现更加个性化的用户界面。WinForm还支持自定义样式和皮肤,可以改变整个应用程序的外观和主题,使得应用程序看起来更加与众不同。
  通过学习WinForm,我深刻体会到了它在Windows应用程序开发方面的强大能力和灵活性。它不仅提供了丰富的控件和功能,还具有简单易用的编程模型,使得开发者可以快速地构建出功能完善、易于维护的应用程序。
  如果你正在学习WinForm,我建议你通过阅读相关文档和教程,实际动手编写一些简单的小项目来加深理解。同时,结合实际项目的需求,尝试对WinForm进行进一步的扩展和优化,这样你的学习效果会更加显著。可以尝试利用WinForm开发一个简单的日程安排程序或者一个音乐播放器等小项目,这将帮助你锻炼相关的技能并加深对框架的理解。

  通过学习和实践,我深深体会到WinForms的优势和实用性。我希望通过持续的学习和实践,能够进一步掌握WinForms的高级特性和技巧,运用到实际的项目开发中,为用户提供更好的应用体验。同时,我也会持续关注和学习其他GUI开发框架的发展,以拓宽自己的技术广度和深度。


  总之,学习WinForm是一次有意义的旅程,它将为你打开强大的Windows应用程序开发之门。希望你能够充分发挥这个框架的优势,不断学习和实践,成为一名优秀的桌面应用程序开发人员!

以下为我做的一个WinForm登陆窗口和部分代码:

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 WindowsFormsApp1
{
    public partial class Login : Form
    {
        int i = 1;
        public Login()
        {
            InitializeComponent();
        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {

        }

        private void label1_Click(object sender, EventArgs e)
        {

        }

        private void btnLogin_Click(object sender, EventArgs e)
        {
            if(txtName.Text =="user" && txtPassword.Text =="123")
            {
                MessageBox.Show("登录成功");
                numo media = new numo();
                media.Show();
            }
            else
            {
                MessageBox.Show("用户名或密码错误");
            }
        }

        private void btnReset_Click(object sender, EventArgs e)
        {
            foreach(Control item in this.Controls)
            {
                if (item is TextBox)
                {
                    item.Text = "";
                }
            }
        }

        private void Sign_Click(object sender, EventArgs e)
        {
            Form2 f2 = new Form2();
            f2.Show();
        }

        private void txtPassword_TextChanged(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (i == 1)
            {
                this.txtPassword.PasswordChar = default(char);
                this.open.Text = "不显示密码";
                i = 2;
            }

            else 
                    {
                this.txtPassword.PasswordChar = '*';
                this.open.Text = "显示密码";
                i = 1;
            }
        }

        private void Login_KeyDown(object sender, KeyEventArgs e)
        {
            
        }

        private void txtPassword_KeyDown(object sender, KeyEventArgs e)
        {
             if (e.KeyValue == 13)
            {
                btnLogin.PerformClick();
            }
     
        }

        private void Login_FormClosing(object sender, FormClosingEventArgs e)
        {
            //closed 不可以取消关闭, closing 可以取消关闭
            if(MessageBox.Show("确认关闭吗?","关闭提示",MessageBoxButtons.OKCancel,
                MessageBoxIcon.Question,MessageBoxDefaultButton.Button1)== DialogResult.OK)
            {
                this.Dispose();
            }
            else
            {
                e.Cancel = true;
            }
        }

        private void 出库数据ToolStripMenuItem_Click(object sender, EventArgs e)
        {

        }

        private void 关闭ToolStripMenuItem_Click(object sender, EventArgs e)
        {
           
        }

        private void picLogin_Click(object sender, EventArgs e)
        {

        }


      
        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (this.comboBox1.SelectedIndex == 0)
            {
                this.picLogin.Image = Image.FromFile(@"D:\JRPG\chengshan.jpg");
            }
            else if (this.comboBox1.SelectedIndex == 1)
            {
                this.picLogin.Image = Image.FromFile(@"D:\JRPG\zi.png");
            }
            else if (this.comboBox1.SelectedIndex == 2)
            {
                this.picLogin.Image = Image.FromFile(@"D:\JRPG\4da.png");
            }
        }

        int img = 0;
        private void button1_Click_1(object sender, EventArgs e)
        {
            
            if (img == 0)
            {
                this.picLogin.Image = Image.FromFile(@"D:\JRPG\chengshan.jpg");
            }
            else if(img == 1)
            {
                this.picLogin.Image = Image.FromFile(@"D:\JRPG\zi.png");
            }
            else if(img == 2)
            {
                this.picLogin.Image = Image.FromFile(@"D:\JRPG\4da.png");
            }
            img++;
            if (img > 2)
            {
                img = 0;
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            if (img == 0)
            {
                this.picLogin.Image = Image.FromFile(@"D:\JRPG\chengshan.jpg");
            }
            else if (img == 1)
            {
                this.picLogin.Image = Image.FromFile(@"D:\JRPG\zi.png");
            }
            else if (img == 2)
            {
                this.picLogin.Image = Image.FromFile(@"D:\JRPG\4da.png");
            }
            img--;
            if (img < 0 )
            {
                img = 2;
            }
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            if (img == 0)
            {
                this.picLogin.Image = Image.FromFile(@"D:\JRPG\chengshan.jpg");
            }
            else if (img == 1)
            {
                this.picLogin.Image = Image.FromFile(@"D:\JRPG\zi.png");
            }
            else if (img == 2)
            {
                this.picLogin.Image = Image.FromFile(@"D:\JRPG\4da.png");
            }
            img--;
            if (img < 0)
            {
                img = 2;
            }
        }

        private void Login_Load(object sender, EventArgs e)
        {

        }
    }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值