C#创建窗体应用程序

news2024/12/24 9:07:20

1、新建项目,选择窗体应用

 2、打开相关视图

工具箱:将工具箱中的控件直接拖拽到界面中,会自动生成对用的控件。

属性:可以设置控件的相关属性,包括事件,双击

3、设计应用界面

 4、新建一个交互窗口

 5、在登录窗口中添加一些简单的逻辑

Login.cs

using System;
using System.Diagnostics;
using System.Windows.Forms;

namespace LibraryManagementSystem
{
    public partial class DailyReading : Form
    {
        public DailyReading()
        {
            InitializeComponent();
        }
        // 点击 登录 按钮显示LibraryManage界面
        private void loginBtn_Click(object sender, EventArgs e)
        {
            // 空输入检查
            if (string.IsNullOrEmpty(usernameInput.Text) || string.IsNullOrEmpty(passwordInput.Text))
            {
                MessageBox.Show("请先填写完整的登录信息!", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Information);
                return;
            }
            // 检查用户名和密码,假设为 admin 和 123456
            if (usernameInput.Text == "admin" && passwordInput.Text == "123456")
            {
                // 隐藏登录界面,打开 另一个窗口 LibraryManage
                this.Visible = false;
                LibraryManage libraryManage = new LibraryManage();
                libraryManage.Owner = this;
                libraryManage.Show();
            }
            else
            {
                MessageBox.Show("账号或密码错误!请正确填写登录信息!", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Information);
                return;
            }
        }

        public void windowShow()
        {
            // 当关闭 LibraryManage 界面时返回登录界面,设置登录界面可见
            this.Visible = true;
        }

        private void exitBtn_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void DailyReading_FormClosing(object sender, FormClosingEventArgs e)
        {
            Application.Exit();
        }
    }
}

在 LibraryManage.cs 中添加对应的交互代码

using System.Runtime.CompilerServices;
using System.Windows.Forms;

namespace LibraryManagementSystem
{
    public partial class LibraryManage : Form
    {
        public LibraryManage()
        {
            InitializeComponent();
        }
        // 创建一个 登录窗口的实例
        DailyReading dailyReading = new DailyReading();
        // 当关闭 LibraryManage 窗口时,打开登录窗口
        private void LibraryManage_FormClosed(object sender, FormClosedEventArgs e)
        {
            dailyReading.windowShow();
        }
    }
}

至此,一个简单的窗体交互就完成了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/695183.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MVP(Multi-view Prompting):多视图提示改进了方面情感元组预测

论文题目(Title):MVP: Multi-view Prompting Improves Aspect Sentiment Tuple Prediction 研究问题(Question):多视图提示对方面情感元组检测的影响 研究动机(Motivation)&#x…

AI智能人脸识别,抠图-应用证件照

效果展示: 关键代码: import numpy as np import cv2 import osdef crop_face(source_image_path, output_folder_path, tag_width, tag_height):face_detector cv2.CascadeClassifier(cv2.data.haarcascades haarcascade_frontalface_default.xm…

【算法题解】45. N叉树的层序遍历

这是一道 中等难度 的题 https://leetcode.cn/problems/n-ary-tree-level-order-traversal/ 题目 给定一个 N 叉树,返回其节点值的层序遍历。(即从左到右,逐层遍历)。 树的序列化输入是用层序遍历,每组子节点都由 nu…

fopen,fputs,fgets,fclose

fopen 是打开文件 fputs 往文件里面写内容(里面有2个参数其中第一个是一个char 型 数组用于存放读取的字符串,表示读取 1-n个字符。第二个表示是文件读入指针) fgets 读取文件里面的内容 (里面有三个参数其中 第一个是一个char 型 数组用于存放读取的字符串。第二…

阿里云安全组 IP地址段 设置方法 斜线后面数字含义

比如公司搬家后,我的ip变成了101.83.11.11 但我希望安全组中.只限制ip的前2段,后面两段是多少,都不会限制访问 先登录阿里云的服务器管理后台,找到主机,进安全组,添加 设置方法为 端口1234为自定义的,比如远程桌面访问你的服务器,源:就是ip地址段. 101.83.1.1/16解释 斜杠…

使用 Jetpack Compose 构建 LinearProgressIndicator

欢迎阅读这篇关于如何使用 Jetpack Compose 构建 LinearProgressIndicator(线性进度指示器)的博客。Jetpack Compose 是 Google 推出的一款现代化 UI 工具包,用于构建 Android 界面。其声明式的设计使得 UI 开发更加简洁、直观。 什么是 Line…

mfc100u.dll丢失的各种解决方法分享,探究mfc100u.dll文件

在计算机系统中,有许多重要的文件扮演着关键角色。其中之一就是Mfc100u.dll,一但这个文件丢失了,那么你的电脑就会出现问题,如程序运行不了等等。今天主要来给大家讲讲Mfc100u.dll这个文件,mfc100u.dll丢失的各种解决方…

由spring定时任务@Scheduled(cron = “0 0 0/1 * * ?“)引起的坑

这两天做到的一个功能,定时任务每整点生成一条记录,然后使用的cron表达式是: Scheduled(cron "0 0 0/1 * * ?")意为每整点执行一次。 定时任务执行之后使用new Date() 拿到当前本机时间,作为记录的创建时间&#xf…

使用Jmeter完成数据库造数

1.添加驱动 如果使用jmeter连接数据库,需要在jmeter的lib下添加对应的数据库驱动 MySQL: mysql-connector-jar Oracle: ojdbc6-11.2.0.3.jar ps:找到自己对应的驱动版本 2.bin目录启动 localhost bin % sh jmeter.sh ps: Jmeter版本:5.6 mysq…

在windows同时安装两个idea的方法教程

因为近期使用jdk17,所以需要升级Idea的版本,但是我电脑之前用的Idea2018,我又不想卸载,所以想同时装两个版本的。 安装教程如下: IDea官网:https://www.jetbrains.com.cn/idea/download/?sectionwindows 在官网下载.…

从文本、图像到音视频,AIGC技术将如何重构我们的数字世界?

引言 1950 年,艾伦图灵提出著名的「图灵测试」,给出判定机器是否具有智能的试验方法。16 年后,世界上第一款可人机对话的机器人“Eliza”问世,这是 AI 技术最早期的萌芽阶段。但由于当时的科技水平限制,AIGC 仅限于小…

【MySql】C语言连接mysql|图形化工具

文章目录 Connector/C 使用mysql接口介绍Navicat远程连接数据库 Connector/C 使用 说完了mysql的基础,后面我们只关心使用,要使用C语言连接mysql,需要使用mysql官网提供的库,前往官网下载即可。 但是实际上我们并不需要这样去做,…

Feign、Ribbon、Hystrix(铁三角)以及三者超时时间配置

在微服务架构中很多功能都需要调用多个服务才能完成某一项功能,一个成熟的微服务集群,内部调用必然依赖一个好的 RPC 框架,比如:基于 Http 协议的 Feign,基于私有 tcp 协议的 Dubbo 1. Feign 是什么 Feign 是Spring …

Consul 理解

Consul是google开源的一个使用go语言开发的服务发现、配置管理中心服务。内置了服务注册与发现框 架、分布一致性协议实现、健康检查、Key/Value存储、多数据中心方案,不再需要依赖其他工具(比如ZooKeeper等)。服务部署简单,只有一…

SpringBoot实现自定义配置属性提示

前言 我们在使用SpringBoot开发项目时,常常需要编写一些属性配置类,用来完成自定义或特定的属性配置。在配置文件application.yml中,IDEA会自动提示官方默认的相关配置且可以点击属性自动跳转到属性对应的配置类中,实现快速查看属…

力扣387:字符串中的第一个唯一字符

题目描述:给定一个字符串s,找到它的第一个不重复字符,并返回索引,如果不存在,则返回-1. 提示:s 不为空且 s 只包含小写字母 思路: 将字符串中的每个字符遍历一次,将其中每个字符以…

基于Java斗车交易系统设计实现(源码+lw+部署文档+讲解等)

博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

centos下的Nginx, tar安装不能使用systemctl启动问题

1.systemctl start nginx启动报错 2.报错原因 解压方式nginx,系统服务内没有nginx的服务,所以报错 3.配置nginx系统服务 1)/etc/init.d/目录下创建nginx 2)nginx文件内容 #!/bin/sh # nginx - this script starts and stops the nginx daemin # # c…

【漏洞案例】云上攻防之云主机中web应用自身漏洞

0x00 前言 最近在做项目的时候,测到了一个部署在云上的存在 Laravel UEditor SSRF 漏洞的站点,并且发现这个 SSRF 漏洞可以读取到临时凭证,这不巧了,正好最近写了一个云环境利用的工具。 开始之前这里先简单介绍一下这个工具&am…

(三)R-studio调度

1、准备测试脚本 from datetime import datetime print(111) print(datetime.now()) 2、设置定时调度 如果crontab没有安装,需要在root用户下安装,并启动,可参考:Ubuntu下crontab的安装和使用 (base) rstudio5abc0fae5cff:~/p…