winform基础 C#编程

2023-05-16

1.winform应用程序是一种智能客户端技术,帮助我们获得信息或者传输信息。

2.当后台需要获取前台控件属性,需要使用Name属性。

visible:指示一个空间是否可见

enabled:指示一个空间是否可用

3.事件:发生一件事情

注册事件:双击空间注册的都是控件默认控件被选中的那个事件。

触发事件:

4.在Main函数中创建的窗体对象,我们称之为这个窗体应用程序的主窗体

意味,当将主窗体关闭后,整个应用程序都关闭。

5.TextBox控件

WordWrap:指示文本框是否换行

PasswordChar:让文本框显示一个单一的字符

ScollBars:是否显示滚动条

时间:TextChanged 当文本框中的内容发生改变时触发这个事件

6,跑马灯

private void timer1_Tick(object sender, EventArgs e)
        {
            label1.Text = label1.Text.Substring(1) + label1.Text.Substring(0, 1);
        }

7.实时时间

 /// <summary>
        /// 每间隔一秒将当前的时间赋值给label2
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void timer2_Tick(object sender, EventArgs e)
        {
            label2.Text = DateTime.Now.ToString();
            //当时间在15:32分钟的时候叫我起床
            if(DateTime.Now.Hour==15&&DateTime.Now.Minute==32&&DateTime.Now.Second==32)
            {
                SoundPlayer sp = new SoundPlayer();
                sp.SoundLocation = @" ";
                sp.Play();
            }
        }
        /// <summary>
        /// 当窗体加载的时候 将当前系统时间赋值给Label2
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Form1_Load(object sender, EventArgs e)
        {
            label2.Text = DateTime.Now.ToString();
        }

8.简答记事本程序

1)在程序加载的时候,取消文本框的自动换行,以及让两个和文本框隐藏

2)点击登录,判断师傅登录成功

3)自动换行功能

4)保存文本到一个指定目录下

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Text;
using System.Windows.Forms;

namespace WinFormsApp1
{
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }

        private void Form2_Load(object sender, EventArgs e)
        {
            txtWords.WordWrap = false;
            btnWordWrap.Visible = false;
            btnSave.Visible = false;
            txtWords.Visible = false;
        }

        private void btnLogin_Click(object sender, EventArgs e)
        {
            string name = txtName.Text.Trim();
            string pwd = txtPwd.Text;
            if (name =="admin"&&pwd=="admin")
            {
                MessageBox.Show("欢迎进入记事本应用程序");
                btnWordWrap.Visible = true;
                btnSave.Visible = true;
                txtWords.Visible = true;

                label1.Visible = false;
                label2.Visible = false;
                txtName.Visible = false;
                txtPwd.Visible = false;
                btnLogin.Visible = false;
                //btnRest.Visible = false;
            }
            else
            {
                MessageBox.Show("用户名或者密码错误,请重新输入");
                txtName.Clear();
                txtPwd.Clear();
                //为空间设置焦点
                txtName.Focus();
            }
        }

        private void txtName_TextChanged(object sender, EventArgs e)
        {

        }

        /// <summary>
        /// 自动换行
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnWordWrap_Click(object sender, EventArgs e)
        {
           //当前是否是自动换行
           if(btnWordWrap.Text=="自动换行")
            {
                //取消自动换行
                txtWords.WordWrap = true;
                btnWordWrap.Text = "取消自动换行";
            }
           else if(btnWordWrap.Text=="取消自动换行")
            {
                txtWords.WordWrap = false;
                btnWordWrap.Text = "自动换行";
            }
        }

        private void btnSave_Click(object sender, EventArgs e)
        {
            using (FileStream fsWrite=new FileStream(@"",FileMode.OpenOrCreate,FileAccess.Write))
            {
                string str = txtWords.Text.Trim();
                byte[] buffer = System.Text.Encoding.Default.GetBytes(str);
                fsWrite.Write(buffer, 0, buffer.Length);
            }
            MessageBox.Show("保存成功");
        }
    }
}

9.单选和多选

checked:指示这个控件是否处于选中状态

默认情况下,在一个窗体中,所有的单选按钮只允许选中一个,可以使用groupbox进行分组。

10.窗体

1)首先确定一个父窗体,将IsMdiContainer设置为true。

2)创建子窗体,并且设置他们的父窗体

11.音乐播放

using System;
using System.Collections.Generic;
using System.Drawing;
using System.IO;
using System.Media;
using System.Windows.Forms;
namespace Picture
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        //用来存储音乐文件的全路径
        List<string> listSongs = new List<string>();
        SoundPlayer sp = new SoundPlayer();
        private void Form1_Load(object sender, EventArgs e)
        {
            //播放音乐
            sp.SoundLocation = @"";
            sp.Play();
            pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
            pictureBox2.SizeMode = PictureBoxSizeMode.StretchImage;
            pictureBox3.SizeMode = PictureBoxSizeMode.StretchImage;
            pictureBox4.SizeMode = PictureBoxSizeMode.StretchImage;
            //pictureBox5.SizeMode = PictureBoxSizeMode.StretchImage;
            //pictureBox6.SizeMode = PictureBoxSizeMode.StretchImage;
            //在窗体加载的时候 给每一个PictureBox赋值一张图片路径
            pictureBox1.Image = Image.FromFile(@"");
            pictureBox2.Image = Image.FromFile(@"");
            pictureBox3.Image = Image.FromFile(@"");
            pictureBox4.Image = Image.FromFile(@"");
            //pictureBox5.Image = Image.FromFile(@"");
            //pictureBox6.Image = Image.FromFile(@"");
        }
        string[] path = System.IO.Directory.GetFiles(@"");
        int i = 0;
        Random r = new Random();
        /// <summary>
        /// 每间隔一秒切换一张图片
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void timer1_Tick(object sender, EventArgs e)
        {
            i++;
            if(i==path.Length)
            {
                i = 0;
            }
            pictureBox1.Image = Image.FromFile(path[r.Next(0, path.Length)]);
            pictureBox2.Image = Image.FromFile(path[r.Next(0, path.Length)]);
            pictureBox3.Image = Image.FromFile(path[r.Next(0, path.Length)]);
            pictureBox4.Image = Image.FromFile(path[r.Next(0, path.Length)]);
            //pictureBox5.Image = Image.FromFile(path[r.Next(0, path.Length)]);
            //pictureBox6.Image = Image.FromFile(path[r.Next(0, path.Length)]);
        }

        private void button1_Click(object sender, EventArgs e)
        {
            OpenFileDialog ofd = new OpenFileDialog();
            ofd.Title = "请选择音乐文件";
            ofd.InitialDirectory = @" ";
            ofd.Multiselect = true;
            ofd.Filter = "音乐文件|*.wav|所有文件|*.*";
            ofd.ShowDialog();
            //获得我们在文件夹中选择则所有文件的全路径
            string[] path = ofd.FileNames;
            for(int i=0;i<path.Length;i++)
            {
                //将音乐文件的文件名加载到listbox中
                listBox1.Items.Add(Path.GetFileName(path[i]));
                //将音乐文件的文件名加载到ListBox中
                listSongs.Add(path[i]);
            }
        }
        /// <summary>
        /// 双击播放音乐
        /// </summary>s
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void listBox1_DoubleClick(object sender, EventArgs e)
        {
            sp.SoundLocation = listSongs[listBox1.SelectedIndex];
            sp.Play();
        }

        /// <summary>
        /// 点击下一首
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button3_Click(object sender, EventArgs e)
        {
            //获得当前选中歌曲的索引
            int index = listBox1.SelectedIndex;
            index++;
            if(index==listBox1.Items.Count)
            {
                index = 0;
            }
            //将改变后的索引重新的赋值给当前选中项的索引
            listBox1.SelectedIndex = index;
            sp.SoundLocation = listSongs[index];
            sp.Play();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            int index = listBox1.SelectedIndex;
            index--;
            if(index<0)
            {
                index = listBox1.Items.Count - 1;
            }
            //将重新改变后的索引重新赋值给当前选中项
            listBox1.SelectedIndex = index;
            sp.SoundLocation = listSongs[index];
            sp.Play();
        }
    }
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

winform基础 C#编程 的相关文章

  • C# winform 捕获全局异常

    using System using System Collections Generic using System Windows Forms using System IO namespace GobalException static
  • log4net 使用示例 asp.net + winform

    log4net 是 apache org 在 log4j的基础上推出的针对 NET程序的开源的日志组件 log4net目前的最新版本是 1 2 10 xff0c log4net支持的日志保存方式 xff0c 可谓丰富之极 xff0c 包括
  • winform项目搭建

    1打开vs2019 xff0c 新建Windows窗体应用 NET Framework 2项目名称 xff08 文件夹的名字 xff0c 如login xff09 xff0c 位置 xff1a 桌面 xff0c 创建解决方案 xff0c 把
  • winform中UI设计分辨率问题

    1 UI设计可以自适应或固定分辨率 xff0c 自适应需要手动写调整控件尺寸位置代码 xff1b 固定分辨率需要固定尺寸的UI资源图片 xff08 如背景图片 xff09 和固定的终端分辨率 xff08 如pc端不一致需调整分辨率为初始设计
  • c#winform控件过多卡顿问题解决方案

    近期在项目中遇到了登录以及切换界面时 xff0c 界面不停闪烁的问题 xff0c 经过查阅发现以下方法可以成功解决该问题 将下面代码添加到窗体代码中即可 xff1a protected override CreateParams Creat
  • c# WInform 自定义导航布局

    问题形成原因 xff1a 软件一般都是左侧树导航或上部菜单导航 xff0c 做好一个软件后 xff0c 有的客户可能想用一个页面做导航图像 而各个客户用的功能可能不同 xff0c 所以导航布局需要自定义 思路 xff1a 1 把菜单列出来
  • C#WinForm

    WinForm 是 Windows Form 的简称 xff0c 是基于 NET Framework 平台的客户端 xff08 PC软件 xff09 开发技术使用 C 编程 C WinForm 编程需要创建Windows窗体应用程序项目 W
  • Winform

    自适应窗口布局 OnLayout 窗口在尺寸变化时 会调用OnLayout方法 所以 在form1 cs文件里重写OnLayout方法即可实现自适应 在OnLayout方法中 我们获取一下窗口的宽度和高度 根据窗口的宽度和高度重新设定控件的
  • winform通过https与服务器进行通信

    C 做客户端 xff08 winfrom xff09 是非常方便的 当winfrom通过https与服务器进行通信时 xff0c 可以选择json xml等数据结构封装要传输的数据 下面是以xml封装数据 xff0c 以https与serv
  • Winform 集成零散dll进exe的方法

    Winform程序经常需要引用一些第三方控件 xff0c 这些控件大多以DLL的形式提供 另外 xff0c 一般USB桥芯片的官方提供 net操作类库也都是DLL形式提供的 因此一个稍大的项目中往往有一大堆的零散的DLL文件 xff0c 而
  • C#/winform设置窗体自动缩放适应不同尺寸的电脑屏幕大小

    窗体属性 xff1a AutoScaleMode属性 xff0c 可以设置窗体随着分辨率改变来适应电脑屏幕 系统默认是 xff1a Inherit None xff1a 禁用自动缩放 默认时 Font xff1a 根据类使用的字体 xff0
  • C#winform——添加不同语言环境下的resx,使得显示文本能随语言环境变化

    添加不同语言环境下的resx 添加不同语言resx文件的两种情形 窗体控件 非窗体控件 为窗体控件添加不同语言resx文件 为非窗体控件添加不同语言resx文件 添加不同语言resx文件的两种情形 窗体控件 1 如下所示 需要在不同语言环境
  • .Net WinForm 中关于输入法打开却无法输入中文总结

    根据前面的兄弟们解决方法我做了下总结 希望对以后遇到此问题的同行提供点帮助 大家如果还有好的方法也请回复提供我 共同学习 出现这个问题时我的输入法设置为 注意我这里使用简体中文美式键盘 然后我删除了简体中文美式键盘 添加了英语 美国 美式键
  • winform 登录跳转页面

    登录成功后跳转 改两个地方就可以解决而 第一个 上面的判断是登录成功与否 跳转需要的就是一句 当前页 改变DialogResult this DialogResult DialogResult OK 第二个 在Program cs里面 st
  • winform控件之BindingNavigator

    BindingNavigator控件可以为我们绑定的数据提供一个导航的功能 默认的工具是这个样子的 我们可以根据需求再增加功能 1 BindingNavigator用法 1 1界面布局 界面布局如下 一个BindingNavigator名为
  • C# winform流程图项目(功能完整,中文注释,附下载链接)绘制各种流程图形,保存,步骤记录,删除,连接断开,直线折线,属性调节

    C winform流程图项目 功能完整 中文注释 附下载链接 绘制各种流程图形 保存 步骤记录 删除 连接断开 直线折线 属性调节 点我下载项目源码 主要功能如下 1 鼠标点击工具箱后在画布点击拖出图形 2 选中直线节点靠近图形节点自动连接
  • WinForm:禁用Panel容器滚动条自动移动位置的功能

    今天遇到了一个问题 描述如下 有一个Panel容器 将AutoScroll属性设置为True 此时Panel容器会在内容过多时自动展示一个滚动条 这个滚动条存在一个缺点 即会随着焦点变化自动滚向焦点位置 如果仅初始化界面时Panel滚动条位
  • DevExpress WinForms图表组件 - 直观的数据信息呈现新方式!(一)

    凭借界面控件DevExpress WinForms全面的2D和3D图表类型的集合 DevExpress WinForms的图表控件设计大大简化了开发者直观地向最终用户呈现信息的方式 DevExpress WinForms有180 组件和UI
  • C#开发Windows窗体应用程序的步骤

    使用C 开发应用程序时 一般包括创建项目 界面设计 设置属性 编写程序代码 保存项目 程序运行等6个步骤 1 创建项目 在Visual Studio2017开发环境中选择 文件 新建 项目 菜单 弹出 新建项目 对话框 如图8 1所示 图8
  • winform记录

    SpeechSynthesizer 下边代码多次调用 会导致内存溢出outofmemory SpeechSynthesizer 需要改为全局静态 private void button Click object sender EventAr

随机推荐

  • 论文笔记:Learning Deep Features for Discriminative Localization

    一 这篇论文解决什么问题 原始问题 xff1a Weakly supervised object localization xff0c 研究发现 xff0c 图像分类任务上训练的CNN xff0c 可以直接用于物体定位 两个子问题 xff1
  • CSS高度塌陷问题-六种解决方案

    问题背景 子元素浮动后 xff0c 无法撑起父元素高度 xff0c 导致父元素高度丢失 xff0c 其下元素会自动上移 xff0c 导致页面布局混乱 解决方案 一 BFC 块级格式化环境 xff08 Block Formatting Con
  • MySQL设置更改root密码

    MySQL设置更改root密码 方法一 xff1a 通过MySQL console直接设置密码 首先打开MySQL console 输入原始密码后按回车键 xff08 如果没有原始密码 xff0c enter password后面为空 xf
  • Unity2D—利用UGUI纯代码实现简易摇杆

    目标 xff1a 拖动摇杆实现平面物体的移动 一 制作摇杆UI 平面物体 xff08 1 xff09 新建画布Canvas xff0c 将Canvas的UI缩放模式设置为屏幕大小播放 xff08 如不设为该模式则会因界面缩放而导致UI消失
  • Unity2D—骨骼绑定、IK系统、动画(一)

    目标 xff1a 使用素材实现特定的2D人物动画 一 导入包资源和素材 xff08 本人的Unity版本为2021 1 7 xff09 xff08 1 xff09 Unity注册表中 xff1a 2D Animation 2D PSD Im
  • Unity2D—骨骼绑定、IK系统、动画(二)

    目标 xff1a 使用素材实现特定的2D人物动画 三 IK系统简介 小知识 xff1a IK动画全名是Inverse Kinematics 意思是反向动力学 xff0c 子骨骼节点带动父骨骼节点运动 比如跳街舞的少年用手撑着身体在地上转圈
  • 手把手教你做计算机网络基础大题—报文交换

    一 题目 如图所示 xff0c 主机A要向主机B发送一个长度为300KB的报文 xff0c 发送速率为10Mbps xff0c 传输路径上要经过8个路由器 xff0c 连接路由器的链路长度为100km xff0c 信号在链路上的传播速度为2
  • 手把手教你做计算机网络基础大题—TCP头部结构

    一 题目 已知TCP头部用十六进制数表示为 xff1a 05320017 00000001 00000055 500207FF 00000000 请回答以下问题 xff1a xff08 1 xff09 源端口号是多少 xff1f xff08
  • 雅思大作文写作模版

    模版整理自Vince9120老师 xff0c 逻辑清晰 xff0c 对于写作遇到瓶颈的同学有帮助 xff0c 而且易上手使用 Vince老师视频在Bilibili xff0c 备考时间充足的同学建议观看学习 xff01 一 大作文段落详情及
  • 手把手教你做计算机网络基础大题—ARQ协议

    一 题目 假定使用连续ARQ协议 xff0c 发送窗口大小是3 xff0c 而序号范围是 0 xff0c 15 xff0c 而传输媒体保证在接收方能够按序收到分组 在某一时刻 xff0c 在接收方 xff0c 下一个期望收到的序号是5 试问
  • ARM开发中ubuntu设置成静态IP的优劣分析

    ARM linux开发中 xff0c 我们经常将主机ubuntu设置成静态IP 这有一些好处 xff0c 譬如你的uboot的环境变量中serverip就不用每次改来改去的了 我一直也是这么做的 xff0c 但是今天突然发现这样会带来很多问
  • 手把手教你做计算机网络基础大题—路由表

    一 题目 设某路由器建立了如下路由表 xff1a 目的网络子网掩码下一跳128 96 39 0255 255 255 128接口m0128 96 39 128255 255 255 128接口m1128 96 40 0255 255 255
  • 新手入门:ST-Link和J-Link仿真器的使用

    当编译完成之后 xff0c 点击下载 xff0c 出现这样的错误提示 xff0c 说明我们的仿真器配置没有配置好 xff0c 下面我们讲讲J Link和ST Link分别应该如何配置 xff08 1 xff1a 编译 xff0c 后续只编译
  • 深度学习图像分类实战——pytorch搭建卷积神经网络(AlexNet, LeNet, ResNet50)进行场景图像分类(详细)

    目录 1 一 实验过程 1 1 实验目的 1 2 实验简介 1 3 数据集的介绍 1 4 一 LeNet5网络模型 1 5 二 AlexNet网络模型 1 6 三 ResNet50 xff08 残差网络 xff09 网络模型 二 实验代码
  • c++实现经典游戏贪吃蛇(超详解)

    经典版 要求 xff1a 1碰到四周和自身游戏结束 xff1b 2迟到食物蛇身增长 xff1b 3食物吃得越多游戏越快 xff1b 4通过w a s d可控制蛇头的方向 xff1b 5蛇身颜色不一致 源码 xff08 需要easy x 贪吃
  • c++中求数组的长度

    c 43 43 中求数组的长度 数组长度 61 sizeof 数组名 sizeof 数组类型 span class token macro property span class token directive hash span span
  • 实验 1 UML 类图实验

    实验内容 作图工具 xff1a PowerDesigner 1 绘制以下类图并生成源代码 xff08 语言不限 xff09 xff1a 2 根据以下描述绘制类图 xff0c 再正向工程生成 Java 源代码 xff08 也可生成其他面 2
  • 贪吃蛇(C++)

    一 项目思路 该项目用于计算机软件课设 贪吃蛇要解决的问题有 xff1a 蛇身的移动 xff0c 事物的随机生成 xff0c 蛇头与食物重合 xff0c 蛇吃食物身体的变长 蛇身移动的处理可以改变蛇首元素 xff08 蛇身用数组存储 xff
  • C语言编程工具Dev C++的安装教程

    一 Dev C 43 43 安装包 xff08 5 11版本 xff09 无偿分享 Dev C 43 43 5 11 简体中文版下载地址 xff1a 百度网盘 xff1a 链接 xff1a https pan baidu com s 1Yb
  • winform基础 C#编程

    1 winform应用程序是一种智能客户端技术 xff0c 帮助我们获得信息或者传输信息 2 当后台需要获取前台控件属性 xff0c 需要使用Name属性 visible 指示一个空间是否可见 enabled 指示一个空间是否可用 3 事件