离散数学及其应用

2023-05-16

“离散数学在信息技术领域有着广泛的应用,是计算机类相关专业必备的基础知识,也是计算机类及其他信息类相关专业的一门重要基础课程。离散数学研究的对象是离散数量关系和离散结构的数学模型,包含集合理论、数理逻辑、图论、代数系统和计算理论。这些概念、理论以及方法广泛地应用在数字电路、编译原理、数据结构、操作系统、数据库系统、算法的分析与设计、人工智能、计算机网络、密码学等专业课程中。该课程所提供的训练有助于提高学生概括抽象能力、逻辑思维能力、归纳构造能力”

文件:url80.ctfile.com/f/25127180-605685938-09f148?p=551685 (访问密码: 551685)


以下内容无关:

进入移动互联网时代以来,Windows桌面开发已经很久不碰了。之前就是从做Windows开发入行的。

当年,还是C++ VC6, MFC的时代。那时候开发要查的是MSDN 😃。内存要自己管理, 排查内存泄漏(忘了释放分配的内存)也是基本日常。光阴似箭,岁月如梭~!

几年之前,北漂时需要写一个windows 的客户端,想招一个c#程序员,专职开发,结果压根就没有人投简历,-_-||,后来只好,亲力亲为。

个人觉得微软的开发环境,工具其实是非常好用的。好上手,效率高。没落的原因,应该主要是没有赶上移动互联网的发展,windows 程序员的需求可能已经小于,安卓和 ios的程序员了。

同时,因为环境比较封闭。 windows系统要钱, visual studio 要钱,还不开源。反观java 基本不要钱,还开源……。

近期又遇到一个需要开发一个windows原生程序的需求,仍然选择用c#开发的。 因为UI上有一定要求, 这里主要就分享下,c# winform窗体的UI美化思路。另外,c# 似乎还有一个叫WPF的库,之前简单用过,感觉比较复杂,这里就还是用winform方式开发,反正UI的要求也没有那么高。

美化前

美化后

有没有好看一丢丢, 下面分控件,区域说下,美化思路。

按钮

图中的 4,6,9 ,放大,缩小,包括云台移动控制,以及右上角窗体的 最大,最小化,关闭等,都是Button控件。按钮可定制性比较高,可以 设置属性窗口中的 FlatStyle 为 FLat ,之后展开 FlatAppearance ,设置对应的边框颜色BorderColor即可。 文字颜色即 ForeColor。文字字体在属性窗体中也有对应的设置。

列表框

左侧的摄像头列表,是一个ListBox控件。这个控件没有找到可以设置表框颜色的属性。可以配置的只有一个BorderStyle,将其设置为None,则可以去掉原边框,只留下列表内容。然后我们考虑在OnPaint中,给这个列表框手动绘制一个边框。结果ListBox也不支持,OnPaint事件。 最后只好把它放入一个Panel中,在Panel的Paint事件中,通过GDI+提供的绘图函数,自行手动绘制一个亮蓝色边框。

复制代码
private void splitContainer1_Panel1_Paint(object sender, PaintEventArgs e)
{
//画一个边线
Graphics g = e.Graphics;
g.Clear(this.BackColor);
Pen pen = new Pen(Color.FromArgb(26, 233, 227), 1);
Rectangle rect = new Rectangle(1, 1, splitContainer1.Panel1.ClientSize.Width-2, splitContainer1.Panel1.ClientSize.Height-2);

        g.DrawRectangle(pen, rect);
        pen.Dispose();
         e.Dispose();
    }

复制代码

列表框的右键弹出菜单

即图中那个按时间回放的弹出菜单,默认是系统风格。可以设置BackColor属性,但设置后,鼠标移动到上面选择时,会很难看。 另外前面默认会有一个图标的空白位置。需要额外做下设置。取消图片空白, 设置选中颜色, 设置边框颜色。


contextMenuStrip.RenderMode = ToolStripRenderMode.Professional;
contextMenuStrip.Renderer = new ToolStripProfessionalRenderer(new MyToolStripRenderTable());
contextMenuStrip.ShowImageMargin = false;

复制代码
internal class MyToolStripRenderTable: ProfessionalColorTable
{

    public override System.Drawing.Color MenuItemSelected
    {
        get { return Color.FromArgb(26, 233, 227); }
    }

    public override System.Drawing.Color MenuBorder
    {
        get { return Color.FromArgb(26, 233, 227); }
    }
}

复制代码

窗体标题

窗体的标题,以及最大,最小,关闭按钮,是系统的统一风格,无法直接定制。 于是只好迂回实现。思路上就是将窗体设置为无边框窗体,然后自行在窗体上放置按钮,实现 最大,最小及关闭功能,如此便可以方便的绘制成自己想要的风格。通过将FormBorderStyle 设置为 None ,隐藏掉系统默认的窗体边框,及关闭等按钮。自行添加3个 Button控件,在点击事件中,分别实现,最大,最小,关闭功能。

注意:将窗体边框隐藏后,除了关闭等按钮需要自行实现外。 窗体拖动(按住标题栏,移动窗体位置)以及窗体的大小调整(拖拉窗体边框,调整窗体大小)也会失效。都需要自行实现。

拖动处理:通过处理窗体的鼠标按下以及移动事件,计算X,Y移动距离。对应修改窗体位置 Top及Left 属性即可。

窗体大小调整:处理窗体的鼠标移动及按下事件,在进入特定范围时,如边界10像素时,改变鼠标样式,在按住左键拖动时,将窗体宽高,设置为鼠标位置对应X,Y值即可。

窗体边框

最外部的蓝色边线,本应可以在窗体的Paint事件中绘制, 但锅叔遇到了一个问题, 如果下面的方式取得graphics ,拖动时会有边线残留。 不能正常Clear。

Graphics g = e.Graphics;
  而使用CreateGraphics(),可以正常擦除,但效率会很低。有知道为啥的朋友可以指导下。。。

研究无果,决定,也同样添加一个跟窗体一样大的Panel ,通过Panel的Paint事件绘制边线。这里因为Panel覆盖了整个窗体, 上面说的窗体拖动及缩放处理。实际处理的是这个Panel的鼠标事件。

经过上面的处理,就变得好看一些了。。。o( ̄︶ ̄)o。

最后还是说, 微软的东西用来开发自己windows上的东西,还是挺方便的。希望不要倒闭了。-_-||。

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

离散数学及其应用 的相关文章

随机推荐

  • Go 面试系列:如何比较GO中的结构体?

    结构体是什么 在 Go 语言中有个基本类型 xff0c 开发者们称之为结构体 xff08 struct xff09 是 Go 语言中非常常用的 xff0c 基本定义 xff1a span class token keyword type s
  • Go面试系列:Goroutine为什么设计为没有ID?

    GoroutineID 是什么 我们要知道 xff0c 为什么大家会下意识的想去要 GoroutineID xff0c 下面引用 Go 语言圣经中的表述 xff1a 在大多数支持多线程的操作系统和程序语言中 xff0c 当前的线程都有一个独
  • MySQL常见面试题:什么是主从延时?如何降低主从延时?

    1 背景 高并发这个阶段 xff0c 肯定是需要做读写分离的 xff0c 啥意思 xff1f 因为实际上大部分的互联网公司 xff0c 一些网站 xff0c 或者是 app xff0c 其实都是读多写少 所以针对这个情况 xff0c 就是写
  • SSL handshake failed: LDAP链接失败解决方法

    部署后系统抛出异常 xff1a org apache directory ldap client api exception InvalidConnectionException SSL handshake failed at org ap
  • Supervisor 使用说明,轻松管理进程

    Supervisor 使用说明 xff0c 轻松管理进程 导读 要想在终端后台常驻进程 xff0c 首先想到的是在命令后加 amp 符号 xff0c 来达到隐藏程序在后台的目的 xff0c 尽管看起来进程已经在后台运行了 xff0c 实际上
  • 一文搞得Go mod!超详细使用教程,管理好你的go包!

    go语言包管理工具 go mod 详细介绍 通常来说我们创建某个项目都是直接使用IDE来进行创建 xff0c 当然了使用vs code这种文本编辑器也可以 xff0c 所以说使用这些工具来创建一个go的开发环境 xff0c 是几乎不需要设置
  • Go语言面试系列:Go基础类型大全

    Go语言面试系列 xff1a Go基础类型大全 go语言自带的基础类型包括 int xff1a 有符号的整数类型 xff0c 具体占几个字节要看操作系统的分配 xff0c 不过至少分配给32位 uint xff1a 非负整数类型 xff0c
  • 微信浏览器的F12大法!学会随意修改!

    程序员 xff0c 尤其是前端程序员可能都知道什么是F12大法 xff1a 按下F12 xff0c 启动浏览器的调试窗口 xff0c 网页的秘密一览无遗 通过浏览器的调试窗口 xff0c 我们可以看到浏览器和web服务器的所有通信数据 xf
  • 2022届薪资倒挂,白菜总包近40w,如何破?

    为什么互联网大厂校招的薪资一年比一年高 xff1f 为什么作为打工人的我们 xff0c 总是被倒挂 xff1f 其实互联网公司倒挂现象非常普遍 xff0c 很多公司应届生比工作多年的员工工资还要高 我认为薪资倒挂并不是坏事 xff0c 能薪
  • 应届生想在大厂中快速晋升,这些你都要懂

    前言 作为一个刚入职的校招生 xff0c 学会如何在大厂中快速晋升 xff0c 对自己的职业发展有很大的帮助 这篇文章带领大家简单的了解下想要晋升 xff0c 你需要知道说明 xff1f 职级 不同公司 xff0c 特别是成熟的互联网公司
  • Go基础系列:Go安装与环境配置

    1 平台与架构 Go 语言开发团队开发了适用于以下操作系统的编译器 xff1a LinuxFreeBSDMac OS X xff08 也称为 Darwin xff09 目前有2个版本的编译器 xff1a Go 原生编译器 gc 和非原生编译
  • Go语言核心:Go的基本结构

    Go 程序的基本结构和要素 示例 4 1 hello world go span class token keyword package span main span class token keyword import span span
  • 2021到2022,从学生成长为职场人(面试打工指南)

    2021到2022 xff0c 从学生成长为职场人 春招实习入字节 春招能进入字节 xff0c 可以说是今年来一个很重要的转折点 刚进入大三的时候大概三月份 xff0c 我还不是很紧迫 xff0c 感觉距离春招还有一段时间 xff0c 可以
  • 测试假数据构造一键构造方法,Python Faker包使用手册

    前言 当我们开发完成之后 xff0c 需要一些假数据来支持我们的系统 如果自己构造的话 xff0c 费时费力 xff0c 还不一定能够构造合适的数据 而用python的faker包 xff0c 构造假数据非常简单 xff01 安装工具 pi
  • Fragment里面的Viewpaper不显示内容不执行getItem的解决方案

    最近fragment越来越火了 xff0c ViewPager也越来越广泛使用了 xff0c 群里很多朋友就不约而同的遇到了一个奇葩的问题 xff0c fragment里面放viewpager有些时候会不会出现内容 所以今天把这个解决方案分
  • Git修改commit信息方法大全,提交日志、姓名、邮箱都能改

    前言 如果提交的时候发现电脑的 git 配置有问题 xff0c 不要着急 xff0c 教你一招搞定 commit 信息 2 修改用户名 邮箱 全局修改 span class token function git span config gl
  • Go 中 Gzip 与 json 搭配使用压缩数据,减少数据传输量

    Go 中 Gzip 与 json 搭配使用压缩数据 前言 在日常工作中 xff0c 如果遇到数据量大的情况 xff0c 在 db 中是不能直接存储某些字段的 xff0c 一般会用 json 进行marshal 为 byte 再存入 但是如果
  • 转载:最舒服的色彩搭配RGB值配色 (赞、实用)

    原文出处 xff1a https www icoa cn a 512 html 最舒服的色彩搭配RGB值配色 来源 xff1a 逍遥峡谷 发布时间 xff1a 2011 06 20 更新时间 xff1a 2018 12 14 浏览48027
  • 主机与虚拟机ping通

    主机与虚拟机ping通 xff0c 之前上课按老师的配置一步一步来 xff0c 都忘带了脑子 xff0c 这次自己也可以实现配置自由了 1 第一步 xff0c 查看主机ip xff0c cmd gt ipconfig 2 设置虚拟机 xff
  • 离散数学及其应用

    离散数学在信息技术领域有着广泛的应用 xff0c 是计算机类相关专业必备的基础知识 xff0c 也是计算机类及其他信息类相关专业的一门重要基础课程 离散数学研究的对象是离散数量关系和离散结构的数学模型 xff0c 包含集合理论 数理逻辑 图