C# 实现图片的切换

【WinForm】C# 记录页面切换学习过程 上位机页面制作学习过程 阅读详情

程序运行的最终效果图
整体页面
效果
主要功能介绍:程序自动加载指定目录下的所有图片,点击前后按钮可以实现图片的前后切换,三连击屏幕左上角位置,退出程序。
1、启动vs,选择“创建新项目”,项目模版选择“windows窗体应用”,点击下一步,在配置新项目页面中,确定项目名称如:MyPupol,位置,其他选项默认,最后点击“创建”,完成项目创建。
2、打开工具箱,在Form窗体中拖入一个PictureBox控件,拖入两个Button控件。
3、创建一个自定义控件,主要的功能是实现三连击退出程序。

  • 打开解决方案,选中项目,右键选择“添加”-“新建项”,选择“用户控件(windows窗体)”,确定名称:TripleButton.cs,然后点击添加按钮。

  • 在解决方案中可以看到新创建的TripleButton.cs,选中,右键选择“查看代码”,打开TripleButton.cs 的代码窗口。

  • 将下面的的代码全部复制到TripleButton.cs中,注意将命名空间修改成项目名称,
    namespace MyPupil

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace ImageBigTest
{
    /// <summary>
    /// 三击按钮
    /// </summary>
    public partial class TripleButton : System.Windows.Forms.Button
    {
        /// <summary>
        ///用Event来修饰委托对象, 委托类型的事件,内部定义了签名相同的两个BtnEventClick(),
        ///其中私有化了委托类型的事件变量,并为它创建了两个方法add、remove,
        ///这两个方法就是对委托对象BtnEventClick的操作
        /// </summary>
        public event DGTripleButton BtnEventClick;

        /// <summary>
        /// 记录点击时间
        /// </summary>
        Timer tmr;

        /// <summary>
        /// 三击按钮构造函数
        /// </summary>
        public TripleButton()
        {
            base.Click += new EventHandler(TripleButton_Click);
            tmr = new Timer();
            tmr.Interval = 1000;
            tmr.Tick += new EventHandler(tmr_Tick);

        }

        /// <summary>
        /// 时钟事件,一秒以内必须连续点击三次
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void tmr_Tick(object sender, EventArgs e)
        {
            clickTimes = 0;
        }

        /// <summary>
        /// 单击次数
        /// </summary>
        int clickTimes = 0;

        /// <summary>
        /// 三击按钮执行的方法
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void TripleButton_Click(object sender, EventArgs e)
        {
            //没有达到单击三次
            if (clickTimes < 2)
            {
                if (clickTimes == 0)
                {
                    tmr.Start();
                }
                clickTimes++;
            }
            else//三击之后
            {
                if (BtnEventClick != null)
                { //1. 执行委托对象的方法(指针)
                    BtnEventClick(DateTime.Now);
                }
                //2. 清空单击次数
                clickTimes = 0;

                tmr.Stop();
                tmr.Start();
            }
        }

    }
}
  • 粘贴完代码“DGTripleButton”会有红色的下划线错误,提示未能找到类型或命名空间,这里需要添加一个类,在解决方案中选中项目,右键“添加”-“新建项”,选择新建类,确定类名称:DGTripleButton.cs,点击“添加”,在打开的DGTripleButton.cs代码窗口中将下面的代码复制粘贴。同样注意修改命名空间。
    namespace MyPupil
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ImageBigTest
{
    /// <summary>
    /// 三击按钮委托类型
    /// </summary>
    /// <param name="time"></param>
    public delegate void DGTripleButton(DateTime time);
}
  • 将项目全部保存,在TripleButton.Designer.cs中,提示“TripleButton”未包含“AutoScaleMode”的定义。将这条语句删除或注释掉.
  • 在解决方案中选中项目,右键“生成”,在工具箱页面就出现了新创建的自定义控件TripleButton了,将自定义控件TripleButton拖入到Form窗体中,放置在Form窗体的左上角。在属性页签中设置size:45,45;Location:3,3;BackColor:SeaGreen
  • 下面为自定义控件TripleButton添加三连击事件
    在Form1.cs代码中添加如下代码
private void threeClick(DateTime time)
{
     Application.Exit();
}
  • 在Form1.cs[设计]中选中TripleButton控件,在属性中点开事件页签(⚡图标),在BtnEventClick属性中选中刚创建的threeClick事件。

4、自动加载指定目录下的所有图片,将下面代码添加到Form1_Load事件中
将图片添加到泛型集合中,通过下标访问集合中的图片

//获取应用程序的当前工作目录 /bin/debug
string rootPath = Directory.GetCurrentDirectory();
//获取指定目录的父目录 的完整路径 /bin
string parentPath = Directory.GetParent(rootPath).FullName; 
//项目根目录
string topPath = Directory.GetParent(parentPath).FullName;
//项目根目录下的img文件夹
topPath = topPath + "\\img";
//定义一个变量用于指向img目录下的某一图片完整路径
string finalPath;

//初始化指定目录的DirectoryInof 类实例
DirectoryInfo root = new DirectoryInfo(topPath);


//定义Image类型的泛型集合
List<Image> listimages = new List<Image>();
//循环获取img目录下的所有文件的完整路径并添加到链表中
foreach (FileInfo f in root.GetFiles())
{
    finalPath = topPath + "\\" + f.Name;
    listimages.Add(new Bitmap(finalPath));
}
pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
pictureBox1.Image = listimages[0];

5、在上一步中,用image类型的泛型集合存储了img目录下的所有文件,这一步定义两个按钮,通过点击按钮改变泛型集合的下标完成切换图片的功能。在鼠标单击事件外定义一个变量指向泛型集合下标.
private int imageindex = 0;

  • 向后切换图片,泛型集合的下标递增。
private void button2_Click(object sender, EventArgs e)
{
    imageindex++;
    if (imageindex >= listimages.Count)
    {
        imageindex = 0;
    }
    pictureBox1.Image = listimages[imageindex];
}
  • 向先前切换图片,泛型集合的下标递减
private void button1_Click(object sender, EventArgs e)
{
    if(imageindex == 0)
    {
        imageindex = listimages.Count;
    }
    imageindex--;
    pictureBox1.Image = listimages[imageindex];
}

6、为按钮的点击事件绑定键盘键,即按键盘键触发按钮单击事件
首先需要将窗体Form的keyPreview属性设置为True
在这里插入图片描述

  • 然后窗体Form添加KeyDown事件,F键绑定向前选按钮,J建绑定向后选按钮,代码如下:
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
    if(e.KeyCode == Keys.F)
    {
        button1_Click(null, null);
    }
    if(e.KeyCode == Keys.J)
    {
        button2_Click(null, null);
    }
}

7、到这里大体完成了程序的主要功能,在这一步中对窗体、按钮控件做些设置。

  • 程序运行时窗体设置,占满屏幕、无边框、底色(SeaGreen)
this.BackColor = System.Drawing.Color.SeaGreen;
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
this.TopMost = true;
this.WindowState = System.Windows.Forms.FormWindowState.Maximized;
this.ClientSize = new System.Drawing.Size(1920, 1080);
  • TripleButton属性设置,无边框,底色,鼠标移入(颜色同底色),鼠标按下(颜色同底色),最终效果时,程序运行是,鼠标移入、点击外观都没有变化。
this.tripleButton1.BackColor = System.Drawing.Color.SeaGreen;
this.tripleButton1.FlatAppearance.BorderSize = 0;
this.tripleButton1.FlatAppearance.MouseDownBackColor = System.Drawing.Color.SeaGreen;
this.tripleButton1.FlatAppearance.MouseOverBackColor = System.Drawing.Color.SeaGreen;
this.tripleButton1.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
  • Button1属性设置
this.button1.BackColor = System.Drawing.Color.SeaGreen;
this.button1.FlatAppearance.BorderSize = 0;
this.button1.FlatAppearance.MouseOverBackColor = System.Drawing.Color.SeaGreen;
this.button1.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.button1.Font = new System.Drawing.Font("宋体", 26.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.button1.Location = new System.Drawing.Point(10, 510);
this.button1.Size = new System.Drawing.Size(25, 50);
  • Button2属性设置
this.button2.BackColor = System.Drawing.Color.SeaGreen;
this.button2.FlatAppearance.BorderSize = 0;
this.button2.FlatAppearance.MouseOverBackColor = System.Drawing.Color.SeaGreen;
this.button2.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.button2.Font = new System.Drawing.Font("宋体", 26.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.button1.Location = new System.Drawing.Point(1885, 510);
this.button1.Size = new System.Drawing.Size(25, 50)
  • pictureBox控件扩大,在窗口加载时(Form1_Load)进行设置
wfWidth = this.Width;
wfHieght = this.Height;
pictureBox1.Width = wfWidth - 95;
pictureBox1.Height = wfHieght - 80;

最后附上源码
https://download.csdn.net/download/qq_34598215/12656957

C#学习笔记(2)通过timer控件实现背景图片自动切换 通过timer控件实现背景图片自动切换 阅读详情

相关推荐

C#中如何改变按钮的选中背景颜色

以上代码中,我们通过button1_Click事件来处理按钮的点击操作。在C#中,我们可以使用Button类来创建按钮,并通过修改其属性来改变按钮的样式。如果想要改变按钮选中时的背景颜色,可以借助Button类的事件和样式修改来实现。接下来,我们可以通过修改button的BackColor属性来改变按钮选中时的背景颜色。通过以上代码,您可以在C#中通过修改按钮的属性来改变按钮选中时的背景颜色。这样,当按钮被点击时,button1_Click事件将会被触发,从而改变按钮的选中背景颜色。

AnBig_Data的博客 2077

C# 图片切换(文件操作)

C# 图片切换

m0_47020592的博客 1676

C# WinForm中图片连续切换实现指南

PictureBox控件是.NET框架中用于显示图片的控件。它提供了一个简单的容器,可以用来加载和展示图片。PictureBox控件支持多种图片格式,如JPEG, PNG, BMP等。此外,它还允许开发者控制图片的显示方式,如是否保留图片的原始尺寸或者进行缩放。

weixin_35797963的博客 1375

C# 使用PictureBox控件--点击切换图片

效果: 1. 2. 代码: 1 private Boolean fals = true; 2 3 /// <summary> 4 /// 单击事件 5 /// </summary> 6 /// <param name="s...

weixin_30888027的博客 5143

C#图片切换:从基础到实现

Windows Forms,顾名思义,是用于构建Windows桌面应用程序的图形用户界面库。它是.NET Framework的一部分,允许开发者使用拖放式设计,快速构建窗口和控件。Windows Forms 应用程序由一系列的表单组成,每一个表单都是一个窗口,可以包含各种控件,如按钮、文本框、标签等。PictureBox控件是Windows Forms应用程序中用来显示图片的一个容器。它提供了许多有用的属性和方法来管理和展示图像数据。其中,一些核心属性包括:Image。

weixin_42594419的博客 930

点击切换图片

C#源码 可以点击上一张 切换图片 ,或者切换下一张切换图片,点击按钮自带提示音,间隔3秒自动切换图片等功能。欢迎下载抄袭修改。

3.c#打开图片,实现图片自动切换-vs2015

1.新建一个窗体程序,拖入一个picturebox控件 2.拖入一个定时器实现定时切换图片 3.代码实现 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 WindowsFo

qq_41731051的博客 3610

【已解决】App unavailable Unfortunately, Claude is only available in certain countries and regions

App unavailable Unfortunately, Claude is only available in certain countries and regions right now. We will soon publish a list of supported locations on our website.

weixin_43941438的博客 3万+

atitit.GUI图片非规则按钮跟动态图片切换的实现模式总结java .net c# c++ web html js

atitit.GUI图片非规则按钮跟动态图片切换的实现模式总结java .net c# c++ web html js    1. 图片按钮的效果总结 1 1.1. 按钮图片自动缩放的。 1 1.2. 不要边框,如果用自定义图片做按钮背景可以设为 false。 2 1.3. 异形按钮 2 1.4. 不绘制焦点 2 1.5. 鼠标经过时的图标 2 1.6. 选中时的图标 2 1.7

attilax的专栏 2241

C语言头文件完全解析(连“#”我都给你讲明白)

C语言头文件完全解析 引言 本文将尽量详细的介绍c语言的头文件所包含的知识,如有错误,还望指正。 萌新们肯定疑惑为什么每次打代码都要写一个所谓的头文件(如:#include<stdio.h>),这里先简单让大家有个了解,你所用的 printf("%d",a)就是这个 stdio里的东西,如果没有这个头文件,编译器都不知道 printf是个什么东东。所以头文件就是一个准备好的大仓库,你可...

CRAZY_eyes的博客 7万+

小米CyberGear微电机驱动代码(CAN总线驱动,含开源地址)

小米CyberGear微电机驱动代码(ROS下的CAN总线驱动,含开源地址)

2302_80751833的博客 4414

.net里实现图片切换的效果/C#实现图片切换的效果

最近的项目真是走回头路,用.net实现以前静态页面里图片切换的效果!说真的,还真不好弄,在前台试啊试,烦,问baidu,找着了“清言清语”朋友博客里的这个方法,一试,不错!把自己试的效果图及代码放出来大家共享!呵呵,Access数据库截图  前台代码  http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional

2716

整理笔记——二极管

二极管是一种由半导体材料制成的一种具有单向导电性能的电子元器件,二极管的核心是PN结。加在二极管两端的电压和通关的电流被成为,二极管的伏安特性曲线​​​二极管的正向特性:起初正向电压较小时,正向电流几乎没有,称之为死区,此时二极管处于截止状态。当电压差超过截止电压(0.5V或者0.7V),电流随着电压上升,开始增加缓慢,随后急剧增大,二极管的电阻变小进入导通状态,此时电压变化较小。二极管的反向特性:起初反向电流很小,不随电压二变化,此时成为反向饱和电流;当方向电压达到二极管的反向击穿电压。

#include 804

C#实现动态桌面背景图片切换

<br />原文网址:http://kb.cnblogs.com/a/1682829/<br /> C#实现动态桌面背景图片切换作者:传说哥  来源:博客园  发布时间:2010-03-10 18:43  阅读:1073 次  原文链接   [收藏]   <br />问题描述:凝视桌面背景,突感如果桌面背景是变化的像win7一样,该多有意思啊。闹钟瞬间产生一个念头,用C#写一个动态切换桌面背景的图片。如何实现这个想法了,我思考了一会儿,想到了如下的一些需要解决的问题:<br />  (1):以何种方式实现切

顾传龙 2598

MATLABGUI读取文件并将路径显示在文本框中

MATLABGUI读取文件并将路径显示在文本框中

m0_50305149的博客 2646

【论文+代码】ZS-N2N实现小样本零网络图像去噪

本文涵盖论文原文讲解与代码复现。

weixin_46287760的博客 3998

C#实现登录界面,密码●显示隐藏,以及输入框内picturebox图片的切换

密码●显示隐藏

cyberhack0719的博客 1063

第六天 界面操作及美化(6.4 使用GUI 套件)

本文介绍如何使用VIPM工具安装DMC GUI套件:首先打开VIPM并连接网络,搜索"UI"找到DMCGUI套件后下载安装;安装完成后即可在VIPM中添加控件并预览效果。该方法同样适用于下载其他UI套件,用户可根据需求设计个性化界面。整个流程包括搜索、下载、安装和使用四个简单步骤,适合快速搭建GUI界面。

weixin_38637405的博客 400

C#实现图片切换效果

C#实现简易轮播图左右切换

weixin_73344835的博客 684

AI漫剧全套万能提示词合集

今天给大家整理一套已经跑通爆款漫剧的万能提示词库!覆盖:豆包剧本人设词 + 分镜生成词 + 即梦绘图词 + 动态优化词 + 防翻车固定词直接复制粘贴,新手也能做出稳定、高清、统一、有质感的AI漫剧!你是资深短视频漫剧编剧,擅长制作60秒竖屏爆款AI漫剧,请为我创作一集完整漫剧内容。要求:开头3秒高能抓眼,中段有冲突转折,结尾留强悬念钩子,节奏紧凑、适合短视频流量。首先生成固定统一人物人设:包含脸型、五官、发色、发型、穿搭、身材、气质、画风、光影细节,要求足够精细,保证全程角色不变脸。

欢迎来到鸾姝淡月博客,专为程序员和编程爱好者打造的技术博客。我们分享编程语言趋势、开发工具、编程哲学、职业发展等,助你掌握新技术,优化技能,激发编程热情。 1701

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

atitit.GUI图片非规则按钮跟动态图片切换的实现模式总结java .net c# c++ web html js...

atitit.GUI图片非规则按钮跟动态图片切换的实现模式总结java .net c# c++ web html js    1. 图片按钮的效果总结 1 1.1. 按钮图片自动缩放的。 1 1.2. 不要边框,如果用自定义图片做按钮背景可以设为 false。 2 1.3. 异形按钮 2 1.4. 不绘制焦点 2 1.5. 鼠标经过时的图标 2 1.6. 选中时的图标 2 1.7. 禁用时显示...

weixin_34092455的博客 198

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

C# 实现图片上下页切换,绘制ROI区域

【代码】C# 实现图片上下页切换,绘制ROI区域。

qq_62238325的博客 622

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

上一篇: Java从入门到精通-笔记
下一篇: 无法启动此程序,因为计算机中丢失 api-ms-win-crt-stdio-l1-1-0.dll
shikern
博客等级 码龄11年 25粉丝 11原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值