C#窗体中动态按钮的设计方法:创建特殊窗体

目录

1.动态按钮的设计方法

2.实例

(1) Resources.Designer.cs

(2)Form1.Designer.cs

(3)Form1.cs

(4) 生成效果


        在窗体界面中,通常以按钮来代替菜单栏的功能,这种形式虽然给用户一种直观、界面风格各异的感觉,但通常按钮都是以静止的形式显示,当光标移到按钮上时,可以使按钮上的图片和文字说明动态化,使用户快捷地找到所选按钮,这时就需要一个动态按钮的窗体界面。

1.动态按钮的设计方法

         就是使得按钮的Image属性加载资源图片,再进一步设置其他属性,使得按钮的外观变为:图片+文字,或者图片,或者特效文字。

// 
// button1
// 
button1.BackColor = Color.Transparent;
button1.Image = Properties.Resources._1;
button1.ImageAlign = ContentAlignment.MiddleLeft;
button1.Location = new Point(1, 16);
button1.Name = "button1";
button1.Size = new Size(141, 48);
button1.TabIndex = 1;
button1.Text = "公司信息管理";
button1.TextImageRelation = TextImageRelation.ImageBeforeText;
button1.UseVisualStyleBackColor = false;

         还可以用事件动态改变按钮布局:

private void Button1_MouseMove(object sender, MouseEventArgs e)
{button1.ImageAlign = ContentAlignment.MiddleCenter;button1.TextImageRelation = TextImageRelation.ImageAboveText;
}private void Button1_MouseLeave(object sender, EventArgs e)
{button1.ImageAlign = ContentAlignment.MiddleLeft;button1.TextImageRelation = TextImageRelation.ImageBeforeText;
}

2.实例

(1) Resources.Designer.cs

//------------------------------------------------------------------------------
// <auto-generated>
//     此代码由工具生成。
//     运行时版本:4.0.30319.42000
//
//     对此文件的更改可能会导致不正确的行为,并且如果
//     重新生成代码,这些更改将会丢失。
// </auto-generated>
//------------------------------------------------------------------------------namespace _195.Properties {using System;/// <summary>///   一个强类型的资源类,用于查找本地化的字符串等。/// </summary>// 此类是由 StronglyTypedResourceBuilder// 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。// 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen// (以 /str 作为命令选项),或重新生成 VS 项目。[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")][global::System.Diagnostics.DebuggerNonUserCodeAttribute()][global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]internal class Resources {private static global::System.Resources.ResourceManager resourceMan;private static global::System.Globalization.CultureInfo resourceCulture;[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]internal Resources() {}/// <summary>///   返回此类使用的缓存的 ResourceManager 实例。/// </summary>[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]internal static global::System.Resources.ResourceManager ResourceManager {get {if (object.ReferenceEquals(resourceMan, null)) {global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("_195.Properties.Resources", typeof(Resources).Assembly);resourceMan = temp;}return resourceMan;}}/// <summary>///   重写当前线程的 CurrentUICulture 属性,对///   使用此强类型资源类的所有资源查找执行重写。/// </summary>[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]internal static global::System.Globalization.CultureInfo Culture {get {return resourceCulture;}set {resourceCulture = value;}}/// <summary>///   查找 System.Drawing.Bitmap 类型的本地化资源。/// </summary>internal static System.Drawing.Bitmap _1 {get {object obj = ResourceManager.GetObject("_1", resourceCulture);return ((System.Drawing.Bitmap)(obj));}}/// <summary>///   查找 System.Drawing.Bitmap 类型的本地化资源。/// </summary>internal static System.Drawing.Bitmap _2 {get {object obj = ResourceManager.GetObject("_2", resourceCulture);return ((System.Drawing.Bitmap)(obj));}}/// <summary>///   查找 System.Drawing.Bitmap 类型的本地化资源。/// </summary>internal static System.Drawing.Bitmap _3 {get {object obj = ResourceManager.GetObject("_3", resourceCulture);return ((System.Drawing.Bitmap)(obj));}}/// <summary>///   查找 System.Drawing.Bitmap 类型的本地化资源。/// </summary>internal static System.Drawing.Bitmap _4 {get {object obj = ResourceManager.GetObject("_4", resourceCulture);return ((System.Drawing.Bitmap)(obj));}}/// <summary>///   查找 System.Drawing.Bitmap 类型的本地化资源。/// </summary>internal static System.Drawing.Bitmap _5 {get {object obj = ResourceManager.GetObject("_5", resourceCulture);return ((System.Drawing.Bitmap)(obj));}}/// <summary>///   查找 System.Drawing.Bitmap 类型的本地化资源。/// </summary>internal static System.Drawing.Bitmap _6 {get {object obj = ResourceManager.GetObject("_6", resourceCulture);return ((System.Drawing.Bitmap)(obj));}}/// <summary>///   查找 System.Drawing.Bitmap 类型的本地化资源。/// </summary>internal static System.Drawing.Bitmap 中 {get {object obj = ResourceManager.GetObject("中", resourceCulture);return ((System.Drawing.Bitmap)(obj));}}}
}

(2)Form1.Designer.cs

namespace _195
{partial class Form1{/// <summary>///  Required designer variable./// </summary>private System.ComponentModel.IContainer components = null;/// <summary>///  Clean up any resources being used./// </summary>/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>protected override void Dispose(bool disposing){if (disposing && (components != null)){components.Dispose();}base.Dispose(disposing);}#region Windows Form Designer generated code/// <summary>///  Required method for Designer support - do not modify///  the contents of this method with the code editor./// </summary>private void InitializeComponent(){label1 = new Label();button1 = new Button();button2 = new Button();button3 = new Button();button4 = new Button();button5 = new Button();button6 = new Button();panel1 = new Panel();panel1.SuspendLayout();SuspendLayout();// // label1// label1.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left;label1.AutoSize = true;label1.Font = new Font("Microsoft YaHei UI", 14.25F, FontStyle.Regular, GraphicsUnit.Point, 134);label1.Location = new Point(62, 13);label1.Name = "label1";label1.Size = new Size(221, 25);label1.TabIndex = 0;label1.Text = "吉林省丰满水电有限公司";// // button1// button1.BackColor = Color.Transparent;button1.Image = Properties.Resources._1;button1.ImageAlign = ContentAlignment.MiddleLeft;button1.Location = new Point(1, 16);button1.Name = "button1";button1.Size = new Size(141, 48);button1.TabIndex = 1;button1.Text = "公司信息管理";button1.TextImageRelation = TextImageRelation.ImageBeforeText;button1.UseVisualStyleBackColor = false;// // button2// button2.BackColor = Color.Transparent;button2.Image = Properties.Resources._2;button2.ImageAlign = ContentAlignment.MiddleLeft;button2.Location = new Point(1, 64);button2.Name = "button2";button2.Size = new Size(141, 48);button2.TabIndex = 2;button2.Text = "部门信息管理";button2.TextImageRelation = TextImageRelation.ImageBeforeText;button2.UseVisualStyleBackColor = false;// // button3// button3.Image = Properties.Resources._3;button3.ImageAlign = ContentAlignment.MiddleLeft;button3.Location = new Point(1, 112);button3.Name = "button3";button3.Size = new Size(141, 48);button3.TabIndex = 3;button3.Text = "人员信息管理";button3.TextImageRelation = TextImageRelation.ImageBeforeText;button3.UseVisualStyleBackColor = true;// // button4// button4.Image = Properties.Resources._4;button4.ImageAlign = ContentAlignment.MiddleLeft;button4.Location = new Point(1, 160);button4.Name = "button4";button4.Size = new Size(141, 48);button4.TabIndex = 4;button4.Text = "银行信息管理";button4.TextImageRelation = TextImageRelation.ImageBeforeText;button4.UseVisualStyleBackColor = true;// // button5// button5.Image = Properties.Resources._5;button5.ImageAlign = ContentAlignment.MiddleLeft;button5.Location = new Point(1, 208);button5.Name = "button5";button5.Size = new Size(141, 48);button5.TabIndex = 5;button5.Text = "员工信息管理";button5.TextImageRelation = TextImageRelation.ImageBeforeText;button5.UseVisualStyleBackColor = true;// // button6// button6.BackColor = Color.Transparent;button6.Image = Properties.Resources._6;button6.ImageAlign = ContentAlignment.MiddleLeft;button6.Location = new Point(1, 256);button6.Name = "button6";button6.Size = new Size(141, 48);button6.TabIndex = 6;button6.Text = "员工调动管理";button6.TextImageRelation = TextImageRelation.ImageBeforeText;button6.UseVisualStyleBackColor = false;// // panel1// panel1.Controls.Add(button1);panel1.Controls.Add(button6);panel1.Controls.Add(button2);panel1.Controls.Add(button5);panel1.Controls.Add(button3);panel1.Controls.Add(button4);panel1.Location = new Point(2, 99);panel1.Name = "panel1";panel1.Size = new Size(146, 323);panel1.TabIndex = 7;// // Form1// AutoScaleDimensions = new SizeF(7F, 17F);AutoScaleMode = AutoScaleMode.Font;BackgroundImage = Properties.Resources.中;BackgroundImageLayout = ImageLayout.Stretch;ClientSize = new Size(540, 454);Controls.Add(panel1);Controls.Add(label1);Name = "Form1";Text = "动态按钮";panel1.ResumeLayout(false);ResumeLayout(false);PerformLayout();}#endregionprivate Label label1;private Button button1;private Button button2;private Button button3;private Button button4;private Button button5;private Button button6;private Panel panel1;}
}

(3)Form1.cs

namespace _195
{public partial class Form1 : Form{public Form1(){InitializeComponent();}private void Button1_MouseMove(object sender, MouseEventArgs e){button1.ImageAlign = ContentAlignment.MiddleCenter;button1.TextImageRelation = TextImageRelation.ImageAboveText;}private void Button1_MouseLeave(object sender, EventArgs e){button1.ImageAlign = ContentAlignment.MiddleLeft;button1.TextImageRelation = TextImageRelation.ImageBeforeText;}private void Button2_MouseMove(object sender, MouseEventArgs e){button2.ImageAlign = ContentAlignment.MiddleCenter;button2.TextImageRelation = TextImageRelation.ImageAboveText;}private void Button2_MouseLeave(object sender, EventArgs e){button2.ImageAlign = ContentAlignment.MiddleLeft;button2.TextImageRelation = TextImageRelation.ImageBeforeText;}private void Button3_MouseMove(object sender, MouseEventArgs e){button3.ImageAlign = ContentAlignment.MiddleCenter;button3.TextImageRelation = TextImageRelation.ImageAboveText;}private void Button3_MouseLeave(object sender, EventArgs e){button3.ImageAlign = ContentAlignment.MiddleLeft;button3.TextImageRelation = TextImageRelation.ImageBeforeText;}private void Button4_MouseMove(object sender, MouseEventArgs e){button4.ImageAlign = ContentAlignment.MiddleCenter;button4.TextImageRelation = TextImageRelation.ImageAboveText;}private void Button4_MouseLeave(object sender, EventArgs e){button4.ImageAlign = ContentAlignment.MiddleLeft;button4.TextImageRelation = TextImageRelation.ImageBeforeText;}private void Button5_MouseMove(object sender, MouseEventArgs e){button5.ImageAlign = ContentAlignment.MiddleCenter;button5.TextImageRelation = TextImageRelation.ImageAboveText;}private void Button5_MouseLeave(object sender, EventArgs e){button5.ImageAlign = ContentAlignment.MiddleLeft;button5.TextImageRelation = TextImageRelation.ImageBeforeText;}private void Button6_MouseMove(object sender, MouseEventArgs e){button6.ImageAlign = ContentAlignment.MiddleCenter;button6.TextImageRelation = TextImageRelation.ImageAboveText;}private void Button6_MouseLeave(object sender, EventArgs e){button6.ImageAlign = ContentAlignment.MiddleLeft;button6.TextImageRelation = TextImageRelation.ImageBeforeText;}}
}

(4) 生成效果

 

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

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

相关文章

华卓荣登「2024数商典型应用场景“乘数榜”」

4月18日&#xff0c;2024未来数商大会在杭州未来科技城学术交流中心举行&#xff0c;由浙江省科学技术协会指导&#xff0c;未来数商大会组委会主办&#xff0c;浙江省数字经济学会、国脉研究院承办。中国工程院院士陈纯、中国互联网协会副理事长高新民、中国社科院信息化研究中…

网工内推 | 深圳网工专场,上市公司、国企,安全认证优先

01 深圳市同为数码科技股份有限公司武汉分公司 招聘岗位&#xff1a;网络工程师 职责描述&#xff1a; 1、负责网络设备的管理、调试、配置、维护等&#xff1b; 2、负责信息安全网络安全设备、系统的运维&#xff1b; 3、负责整体网络系统技术的相关工作&#xff0c;包括架构…

python学习笔记(集合)

知识点思维导图 # 直接使用{}进行创建 s{10,20,30,40} print(s)# 使用内置函数set()创建 sset() print(s)# 创建一个空的{}默认是字典类型 s{} print(s,type(s))sset(helloworld) print(s) sset([10,20,30]) print(s) s1set(range(1,10)) print(s1)print(max:,max(s1)) print(m…

Docker的介绍及应用

1.什么是Docker 我们在部署大型项目的时候&#xff0c;肯定会遇到这种问题&#xff0c;大学项目组件较多&#xff0c;运行环境复杂&#xff0c;部署时会碰到一些问题&#xff1a;例如node、redis、mysql等这些应用都有自己的依赖和函数库。这种复杂的依赖关系很容易出现兼容问…

【docker】

下载脚本 yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine docker-ce yum install -y yum-utils device-mapper-persistent-data lvm2 --s…

Redis概述

目录 redis概述1. 什么是redis2. 为什么使用redis3. redis为什么快4. 哪些场景下使用redis 参考 Redis概述 Redis在线体验网站 Try Redis 基础概念&#xff0c;后续知识有时间整理&#xff08;数据结构、核心知识、高可用&可扩展、应用实践&#xff09; redis概述 1. 什么是…

YOLOv9改进策略 | 添加注意力篇 | TripletAttention三重注意力机制(附代码+机制原理+添加教程)

一、本文介绍 本文给大家带来的改进是Triplet Attention三重注意力机制。这个机制&#xff0c;它通过三个不同的视角来分析输入的数据&#xff0c;就好比三个人从不同的角度来观察同一幅画&#xff0c;然后共同决定哪些部分最值得注意。三重注意力机制的主要思想是在网络中引入…

Mac中隐私安全性设置-打开任何来源

文章目录 **Mac中隐私安全性设置-打开任何来源**一、目的二、打开方式 Mac中隐私安全性设置-打开任何来源 一、目的 从外部下载的软件频繁打不开&#xff0c;需要从隐私安全性中重新选择一下&#xff1b;默认Mac隐藏了任何来源 二、打开方式 打开终端&#xff0c;输入一下命…

51.HarmonyOS鸿蒙系统 App(ArkUI)通知

普通文本通知测试 长文本通知测试 多行文本通知测试 图片通知测试 进度条通知测试 通知简介 应用可以通过通知接口发送通知消息&#xff0c;终端用户可以通过通知栏查看通知内容&#xff0c;也可以点击通知来打开应用。 通知常见的使用场景&#xff1a; 显示接收到的短消息、…

算法提高 第一期 KMP扩展算法

1## 具体思路&#xff1a; 和KMP算法的是想类似&#xff0c;充分利用已经比较字符性质来减少冗余的字符比较次数。KMP的思想是充分的利用模式串中所有前缀字串&#xff08;以模式串为开头的字串&#xff09;的真前缀和真后缀&#xff08;指子串的开始字符与子串的最后字符相等的…

docker中的资源控制

前言 docker 使用cgrqup控制资源&#xff0c;K8S 里面也有limit&#xff08;使用上限&#xff09; docker通过cgroup来控制容器使用的资源配额&#xff0c;包括CPU、内存、磁盘三大方面&#xff0c;基本覆盖了常见的资源配额和使用量控制。 Cgroup 是 Control …

【单链表】LeetCode:203.移除链表元素

&#x1f381;个人主页&#xff1a;我们的五年 &#x1f50d;系列专栏&#xff1a;每日一练 &#x1f337;追光的人&#xff0c;终会万丈光芒 前言&#xff1a; 该题是数据结构&#xff0c;单链表的一道基本题&#xff0c;刚刚准备学习数据结构&#xff0c;或者正在学习数据结…

JRT多服务器同步程序

之前的JRT只部署在一个服务器&#xff0c;实际运用可能会有数台、数十台、或者更多服务器。那么多台服务器就需要程序同步机制。这里借助Rsync同步&#xff0c;但是有个问题是Rsync同步jar之后他不知道是否需要重启站点&#xff0c;为此实现java控制台驱动Rsync&#xff0c;重定…

前端css中的transform(转换)的使用

前端css中的transform的使用 一、前言二、流程图三、举例&#xff08;一&#xff09;、平移1.平移&#xff0c;源码12.源码1运行效果(1).视频效果(2).截图效果 3.平移3d效果&#xff0c;源码24.源码2运行效果&#xff08;1&#xff09;、视频效果&#xff08;2&#xff09;、截…

深入了解计算机系统——利用循环展开对程序的优化

系列文章&#xff1a; 操作系统详解(1)——操作系统的作用 操作系统详解(2)——异常处理(Exception) 操作系统详解(3)——进程、并发和并行 操作系统详解(4)——进程控制(fork, waitpid, sleep, execve) 操作系统详解(5)——信号(Signal) 文章目录 一些概念CPE 初步优化消除不必…

python爬虫之爬取文本内容(2)

一、基本案例 #注意&#xff1a;需要将requests包换成2.27.1 #中文编码gbk也可能是utf-8 import requests #from bs4 import BeautifulSoupif __name__ __main__:url https://www.biqg.cc/book/6909/1.html#目标访问网站url#伪装头信息的引入header {"User-Agent"…

Golang | Leetcode Golang题解之第41题缺失的第一个正数

题目&#xff1a; 题解&#xff1a; func firstMissingPositive(nums []int) int {n : len(nums)for i : 0; i < n; i {for nums[i] > 0 && nums[i] < n && nums[nums[i]-1] ! nums[i] {nums[nums[i]-1], nums[i] nums[i], nums[nums[i]-1]}}for i …

Redis入门到通关之Redis实现Session共享

文章目录 ☃️前期概要☃️基于Session实现登录方案☃️现有方案存在的问题☃️Redis代替Session的业务流程❄️❄️设计key的结构❄️❄️设计key的具体细节❄️❄️整体访问流程 欢迎来到 请回答1024 的博客 &#x1f353;&#x1f353;&#x1f353;欢迎来到 请回答1024的博…

Windows 10 安装配置WSL2(Ubuntu 20.04)教程

Windows 10 安装配置WSL2&#xff08;Ubuntu 20.04&#xff09;教程 一、WSL简介 WSL&#xff08;Windows Subsystem for Linux&#xff09;是一个兼容层&#xff0c;允许在Windows 10上原生运行Linux二进制可执行文件。 二、安装WSL2 3.1 传统手动安装 更新系统&#xff…

OFDM同步技术

文章目录 前言一、OFDM 同步技术二、MATLAB 仿真1、STO 估计技术①、核心源码②、仿真结果 2、CFO 估计技术①、核心源码②、仿真结果 三、资源自取 前言 本文对 OFDM 同步技术以思维导图的形式呈现&#xff0c;有关仿真部分进行了讲解实现。 一、OFDM 同步技术 OFDM 同步技术…