C#可视化编程技术第四章:窗体应用(内含代码注释、窗口样品、笔记)

窗体应用:
窗体应用是应用非常广泛的,比如LOL、CF等热门游戏,又比如QQ等,甚至是C#的编写软件Visual Studio本身也是一个窗体应用。

注:当系统没有我们要的颜色的时候,可以去PhotoShop里将颜色的RGB字符串复制过来,然后在窗体应用的属性里以#号开头也是可以用自己想要的颜色的。
所以很多人也能自己在PS里面弄图标,但是我这样要给大家分享一个字体图标网站。https://www.iconfont.cn/海量图标可供搜索

知识点笔记:
DBHelper类的我就在这不列述了。
弹出消息框:MessageBox.Show();
括号内可以有四个元素:
1、消息框信息;string类型
2、消息框名称; string类型
3、消息框选择按钮;MessageBoxButtons类型
4、消息框内容提示图标; MessageBoxIcon类型

接收消息框选择:
DialogResult name(自定义) = MessageBox.Show();

退出整个窗口程序:
Application.Exit();

设置流氓窗口:
在窗口的关闭时间里面,输入代码(其中name是上面接收消息框选择的name)
if(name == DialogResult.Yes){
e.Cancel = true;
}

窗口将无法正常关闭,只能通过任务管理器强制关闭。(不过你愿意关机重启也行。)

C#窗体应用的创作:

C#窗体应用的创建只需在创建项目时,选择Windows窗体应用(.NET Framework)即可。
主要依赖工具箱里的公共控件、容器、菜单和工具栏等对空白的窗体进行装饰。
再加上通过右键点击出控件或窗口的属性,对相应的属性进行调整。
默认会切换到属性页面,也可以选择属性旁边的事件对窗体进行事件触发。
比如我们的QQ就是通过登录按钮,在数据库中核对好账号、密码后,转换到另一个供用户使用的窗体。

尝试制作一个简单的窗体应用:
在这里插入图片描述
外貌样式的制作和PS与HTML有点像,有的部分需要拖出控件,而各种属性又像是像HTML一样的属性设置。
代码实现事件处理:
通过点出需要触发的控件,右键调出属性,在属性的事件里双击需要触发的代码事件,就能调出对应的方法,然后再自行编辑需要发生的事件效果。
我们已退出程序安全登录为例子:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Dome6._02
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

    /// <summary>
    /// 退出程序按钮事件
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    private void button3_Click(object sender, EventArgs e)
    {
        //退出程序时的弹窗提示信息
        DialogResult result =
        MessageBox.Show("你确定要离开吗?", "系统提示信息", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
        if(result == DialogResult.Yes)
        {
            Application.Exit(); //退出整个程序窗口
        }
    }

    /// <summary>
    /// 安全登录按钮事件
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    private void button1_Click(object sender, EventArgs e)
    {
        DBHelper.constr = "server = .;database = UserIdPwd;uid = sa;pwd = Lj793150148";
        DBHelper.OpenSql();
        if(DBHelper.conn.State == ConnectionState.Open)
        {
            MessageBox.Show("数据库连接成功");
        }

        string sql = "select * from Table_user";
        SqlDataReader read = DBHelper.ExecuteRead(sql);
        int State = 0;
        string name = "";
        try
        {
            while (read.Read())
            {
                if (comboBox1.Text == (string)read["id"] && textBox1.Text == (string)read["pwd"])
                {
                    State++;
                    name = (string)read["name"];
                    return;
                }
            }
        }
        catch (Exception)
        {

            MessageBox.Show("程序代码第55行到第66行运行错误");
        }
        finally
        {
            if (State > 0)
            {
                MessageBox.Show(string.Format("欢迎用户“{0}”回归!!", name));
            }
            else
            {
                MessageBox.Show("用户名或密码错误");
            }
            read.Close();	//关闭只读的连接通道
            DBHelper.conn.Close();	//关闭数据库连接通道
        }
       
    }
}
}

创建的DBHelper类:

using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Dome6._02
{
    class DBHelper
    {
        public static string constr = "";   //数据库连接字符串
        public static SqlConnection conn = new SqlConnection(constr);   //数据库连接对象

    /// <summary>
    /// 确保数据库连接通道打开
    /// </summary>
    public static void OpenSql()
    {
        conn = new SqlConnection(constr);
        if(conn.State == ConnectionState.Broken)
        {
            conn.Close();
            conn.Open();
        }
        if(conn.State == ConnectionState.Closed)
        {
            conn.Open();
        }
    }

    /// <summary>
    /// 数据库增、删、改操作方法
    /// </summary>
    /// <param name="sql">数据库操作语句</param>
    /// <returns>返回受影响行数</returns>
    public static int ExecuteCom(string sql)
    {
        OpenSql();
        SqlCommand com = new SqlCommand(sql, conn); //数据库操作对象
        int result = com.ExecuteNonQuery();
        return result;
    }

    /// <summary>
    /// 数据库查询操作方法
    /// </summary>
    /// <param name="sql">数据库操作语句</param>
    /// <returns>返回SqlDataReader语句</returns>
    public static SqlDataReader ExecuteRead(string sql)
    {
        OpenSql();
        SqlCommand com = new SqlCommand(sql, conn);
        SqlDataReader read = com.ExecuteReader();
        return read;
    }
}
}

总结:
看起来代码很多,但很多其实都是系统生成的。我们只需要点击对应的事件,就能打开对应的事件方法进行代码编写。
程序通过在数据库中对比对应的账号、密码确认是否有该名合法用户,只有满足条件才能登陆成功。所以这也把我们之前学到的知识点应用了起来。

在这里插入图片描述

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可视化编程】实验4: c 实验4:c是一种新型的可视化编程语言,它与其他编程语言不同之处在于它使用图表来表示代码逻辑。c的主要目标是通过可视化编程的方式让初学者更容易理解和编写代码。 在实验4:c中,我们将学习如何使用c语言来解决实际问题。例如,我们可以使用c语言编写一个计算器应用程序,它可以进行基本的数学运算,如加法、减法、乘法和除法。通过使用c语言的图表表示方法,我们可以更直观地看到代码的逻辑。 在编写c程序时,我们首先需要定义输入和输出。输入是指我们程序中需要获取的数据,而输出是指我们程序中将要产生的结果。在实验4:c中,我们可以使用图表的输入输出节点来表示输入和输出。比如,在计算器应用程序中,我们可以使用一个输入节点来接收用户输入的数字,然后使用一个输出节点来显示计算结果。 另一个关键的概念是使用图表的各种节点来表示代码的逻辑。在实验4:c中,我们可以使用图表中的条件节点来表示条件语句,使用循环节点来表示循环语句,使用函数节点来表示函数调用等等。通过使用这些节点,我们可以更清楚地看到代码的执行流程。 实验4:c还包括一些高级特性,如使用变量和数组来存储数据,使用自定义函数来组织代码等等。这些特性使得c语言更强大和灵活,可以应用于更复杂的问题。 总而言之,实验4:c是一种新颖的可视化编程语言,它以图表的形式展现代码逻辑,使初学者更易理解和编写代码。通过实验4:c,我们可以学习到编程的基本概念和技巧,为今后更深入地学习编程打下基础。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值