基于winform的五子棋机器人系统开发 (更新中ing)

一、实物硬件表拟定

笔记本电脑、正运动控制器、三个汇川伺服驱动器、三个滑动模组

二、软件开发

注意细节:

①主界面使用三个panel容器进行构建

pannel容器设置属性参数:(1) dock 

② 添加自定义控件:首先创建类库,删除默认文件后,增加自定义控件;同时在自定义控件中进行增加属性,以便在主窗体中直接修改自定义属性;添加图片资源方式:属性->添加现有文件

快捷方式:propfull->直接创字段和对应的属性

1. 创建winform窗体程序

1.1.窗体参数设置如下:

①  修改窗体size属性,设置为1366,760

②  修改formbodystyle属性,选择none,即“无边框”

1.2.插入三个panel容器:

①  菜单panel:size属性设置为1366,80;dock属性设置为top;backcolor属性设置为blue;

其中dock属性可以控制 控件布局位置

② 显示panel:size属性设置为1366,640;dock属性设置为fill;

③ 底部panel:size属性设置为13866,40;dock属性设置为buttom,backcolor属性设置为blue;

以上窗体参数设置好以后,如图所示:

2. 创建自定义用户控件(方便后期项目直接进行调用)

2.1. 创建自定义控件

① 解决方案->新建类库, 在新建的类库文件下创建自定义控件

2.2. 创建资源图像文件夹

在classliabrary项目下创建“resource”文件夹,同时在该文件下存放一张图像,并点击生成项目

2.3. 添加label和picturebox控件

在自定义控件上添加一个picturebox控件和label控件(图像位于自定义控件的上部分,label位于自定义控件的下部分),并选择resource文件夹中添加的图像

2.4.给自定义属性添加属性参数

① 增加“自定义控件名字”和“自定义控件图像”两个属性参数

        private string buttonname="主界面";public string Buttonname{get { return buttonname; }set { buttonname = value;this.label1.Text = buttonname;
}}private Image image=Properties.Resources._1_removebg_preview;public Image backimage{get { return image; }set { image = value;this.pictureBox1.Image = backimage;}}

 添加完成属性程序以后,点击项目生成;当在其他界面插入自定义控件时,其对应的“backimage”和"buttonname"属性会出现控件属性列表中

 

② 增加控件是否被激活属性

通过isactive属性来控制自定义控件显示的状态,如果自定应控件的isactive属性修改,都会触发onpaiter函数,对控件显示进行重写绘制;目前指定的规则是当isactive属性被设置为true,则自定义属性底部被画上一个白色矩形

private bool isbutactive;[Browsable(true)][Category("自定义属性")][Description("激活按钮")]public bool Isbutactive{get { return isbutactive; }set {isbutactive = value;this.Invalidate();}}private Color activeColor = Color.FromArgb(137, 207, 240);[Browsable(true)][Category("自定义属性")][Description("激活方块颜色")]public Color ActiveColor{get { return activeColor; }set{activeColor = value;this.Invalidate();}}private int activeHeight = 4;[Browsable(true)][Category("自定义属性")][Description("激活方块高度")]public int ActiveHeight{get { return activeHeight; }set{activeHeight = value;this.Invalidate();}}private int activeGap = 0;[Browsable(true)][Category("自定义属性")][Description("激活方块边距")]public int ActiveGap{get { return activeGap; }set{activeGap = value;this.Invalidate();}}protected override void OnPaint(PaintEventArgs e){base.OnPaint(e);Graphics graphics = e.Graphics;Rectangle rectangle = new Rectangle(activeGap, this.Height - activeHeight, this.Width - 2 * activeGap, activeHeight);graphics.FillRectangle(isbutactive ? new SolidBrush(this.activeColor) : new SolidBrush(this.BackColor), rectangle);}

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

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

相关文章

微服务分布式(二、注册中心Consul)

首先我们需要安装consul,到官网下载Consul Install | Consul | HashiCorp Developer 在解压的consul目录下 执行启动命令 consul agent -dev 启动服务 -dev表示开发模式 -server表示服务模式 启动后在浏览器访问8500端口http://localhost:8500/可以看到服务管理界面 项目…

示波器--UNI-T 优利德 UT4102C 使用介绍

示波器--UNI-T 优利德 UT4102C 使用介绍 1 介绍图示特点 2 UTP04示波器探头(100M带宽)3 功能介绍4 示例RS232 电平信号测试 参考 1 介绍 图示 特点 2GS/s的实时采样率:设备能够以每秒2吉萨(Giga Samples per second)…

基础库正则表达式

我们已经可以用requests 库来获取网页的源代码,得到 HTML 代码。但我们真正想要的数据是包含在 HTML代码之中的,要怎样才能从 HTML,代码中获取想要的信息呢?正则表达式就是其中一个有效的方法。 本篇博客我们将了解一下正则表达式的相关用法。正则表达…

PID 控制算法理论背景:飞控领域的核心调控机制(1)

在飞控工程领域,PID 控制算法占据着极为关键的地位,是实现飞行器精确稳定控制的基石。PID 作为比例(P)、积分(I)、微分(D)的集成代表,构建起了控制系统的核心架构&#x…

复合翼与倾转旋翼飞行器:设计与控制算法对比

一、引言 复合翼(Compound Wing)和倾转旋翼(Tilt - Rotor)飞行器在现代航空领域均占据独特地位,二者在设计和控制算法方面展现出显著差异。这些差异在飞行模式切换、推进系统设计、控制算法复杂度以及飞行器稳定性等多…

Vue2五、自定义指令,全局局部注册、指令的值 ,插槽--默认插槽,具名插槽 ( 作用域插槽)

一、自定义指令 使用步骤 1. 注册 (全局注册 或 局部注册) ,在 inserted 钩子函数中,配置指令dom逻辑 2. 标签上 v-指令名 使用 1、自定义指令(全局) Vue.directive("指令名",{ 指令的配置项 insert…

一次BC站点渗透实录

初探 打开首页 简单信息收集: IP地址:美国加利福尼亚洛杉矶 无CDN 中间件:Nginx 80端口直接突破,故未进行端口扫描 渗透思路 一般这种BC站点,有几种思路可以切入: 1)通过SQL注入查到管理员账号密码,扫描…

java 集合对象

Java 基础之集合_java集合继承关系图-CSDN博客 集合可以有序或无序&#xff0c;重复或不能重复&#xff0c;空或不能空。 List<> 集合&#xff0c;是有序&#xff0c;允许重复元素&#xff0c;允许空元素 1、ArrayList<> 非线程安全 2、LInkedList<> 非线…

web实操8-cookie

会话技术 会话&#xff1a; 一次会话中包含多次请求和响应。 客户端浏览器访问服务器的资源&#xff0c;只要客户端或者服务器端不关闭&#xff0c;这始终在一次会话范围内&#xff0c;这一次会话范围内可以包含多次请求并且收到多次相应。 一次会话&#xff1a;浏览器第一…

VMWare 的克隆操作

零、碎碎念 VMWare 的这个克隆操作很简单&#xff0c;单拎出来成贴的目的是方便后续使用。 一、操作步骤 1.1、在“源”服务器上点右键&#xff0c;选择“管理--克隆” 1.2、选择“虚拟机的当前状态”为基础制作克隆&#xff0c;如下图所示&#xff0c;然后点击“下一页” 1.3、…

JVM性能优化一:初识内存泄露-内存溢出-垃圾回收

本文主要是让你充分的认识到什么叫做内存泄露&#xff0c;什么叫做内存溢出&#xff0c;别再傻傻分不清了&#xff0c;别再动不动的升级服务器的内存了。 文章目录 1.基本概念1.1.内存泄露1.2.内存溢出1.3.垃圾回收1.4.内存泄露-垃圾回收-内存溢出三者的关系关系 2.代码示例2.…

dockfile镜像加速

运行给的终端命令 全覆盖法 {"registry-mirrors": ["https://registry.docker-cn.com","http://hub-mirror.c.163.com","https://dockerhub.azk8s.cn","https://mirror.ccs.tencentyun.com","https://registry.cn-han…

数据结构经典算法总复习(下卷)

第五章:树和二叉树 先序遍历二叉树的非递归算法。 void PreOrderTraverse(BiTree T, void (*Visit)(TElemType)) {//表示用于查找的函数的指针Stack S; BiTree p T;InitStack(S);//S模拟工作栈while (p || !StackEmpty(S)) {//S为空且下一个结点为空&#xff0c;意味着结束遍…

Windows系统上创建Flask服务器

为什么需要掌握服务器搭建技能&#xff1f; 掌握服务器搭建技能对于任何需要在线提供服务或平台的个人创意者来说都至关重要。服务器的作用是确保全球任何地方的用户都能顺利访问你的平台。因此&#xff0c;了解如何搭建和维护服务器&#xff0c;不仅能提升平台的稳定性和访问…

ISP用到的一些名词简介

这里主要记录一下在学习ISP时遇到的一些名词。 图像质量(Picture Quality) 1.锐度&#xff08;Acutance&#xff09; 锐度常用于描述边界处图像信息过渡的快慢。高反差图像过渡速度非常快&#xff0c;可以形成非常明确的边缘&#xff0c;而低反差图像存在一定的过渡缓冲&#…

SqlSugar查询达梦数据库遇到的异常情况(续)

之前的文章提到在SqlSugar的Where函数中使用!string.IsNullOrEmpty函数查询达梦数据库时&#xff0c;明明数据库中有数据但就是查不出来&#xff0c;但相同的代码在另一台电脑上就可以正常返回数据。   以下图中的两张表数据为例&#xff0c;执行下面的SQL语句无法查询到数据…

Spark优化----Spark 性能调优

目录 常规性能调优 常规性能调优一&#xff1a;最优资源配置 常规性能调优二&#xff1a;RDD 优化 RDD 复用 RDD 持久化 RDD 尽可能早的 filter 操作 常规性能调优三&#xff1a;并行度调节 常规性能调优四&#xff1a;广播大变量 常规性能调优五&#xff1a;Kryo 序列化 常规性…

ECharts柱状图-柱图42,附视频讲解与代码下载

引言&#xff1a; 在数据可视化的世界里&#xff0c;ECharts凭借其丰富的图表类型和强大的配置能力&#xff0c;成为了众多开发者的首选。今天&#xff0c;我将带大家一起实现一个柱状图图表&#xff0c;通过该图表我们可以直观地展示和分析数据。此外&#xff0c;我还将提供…

电商店铺数据集成到金蝶云星辰V2的实践经验分享

电商店铺数据集成到金蝶云星辰V2的技术案例分享 在电商业务快速发展的背景下&#xff0c;如何高效地将聚水潭平台上的电商店铺数据集成到金蝶云星辰V2系统中&#xff0c;成为了许多企业面临的重要挑战。本文将详细探讨一个实际运行的解决方案——“电商店铺->金蝶客户”&am…

(css)鼠标移入或点击改变背景图片

(css)鼠标移入或点击改变背景图片 html <div class"mapTip"><divv-for"(item, index) of legendList":key"index"class"mapTipOne":class"{ active: change index }"click"legendHandle(item, index)"…