当前位置: 首页 > news >正文

.NET Framework杂记

这篇博客主要记录在用C#编写上位机时,不会的知识点,随时更新,方便查阅。

C#语法操作杂记

  • c#中让textbox选中不选中
  • C#无法使用实例引用来访问成员解决方法
    • 针对不同定义情况的引用
    • 解释
  • C# 字符串分割
    • 用字符串分割
    • 用多个字符串分割
    • 用单字符分割
  • C#中删除字符串最后一个字符串的几种方式
    • 使用Remove移除
    • 使用Substring进行截取
  • C#点击关闭按钮 弹出确认框
    • 方法一:使用代码
    • 方法二:设置窗体属性
    • 内容解释
  • c# progressBar进度条改变颜色及显示进度数字
  • C#一个窗体读取另一个窗体上控件的内容

c#中让textbox选中不选中

https://blog.csdn.net/qq_18975227/article/details/119342576

将TextBox的TabStop属性设置为false;这样运行的时候就不显示蓝色选中状态了

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

C#无法使用实例引用来访问成员解决方法

https://jingyan.baidu.com/article/37bce2be35afe95102f3a28a.html

针对不同定义情况的引用

在这里插入图片描述

在这里插入图片描述

解释

  1. 静态方法应该是属于类的,它的作用范围是类,而不是实例,所以实例访问不到这个静态方法;静态方法在加载类时就已经被加载了,所以可以直接使用;

  2. 实例化类一般是要创建内存区域,而常量一创建就放在常量区,故不需要实例去访问它,也就是说不需要跟着实例进行实例化了。

C# 字符串分割

https://blog.csdn.net/caoguanghui0804/article/details/116584639

using System.Text.RegularExpressions;

用字符串分割

string str="aaajsbbbjsccc";
string[] sArray=Regex.Split(str,"js",RegexOptions.IgnoreCase); //分割结果为aaa bbb ccc

用多个字符串分割

string str="aaajbbbscccjdddseee";
string[] sArray=str.Split(new char[2]{'j','s'}); //分割结果为aaa bbb ccc ddd eee

用单字符分割

string str="aaajbbbjccc";
string[] sArray=str.Split('j'); //分割结果为 aaa bbb ccc

C#中删除字符串最后一个字符串的几种方式

http://t.zoukankan.com/hubbert123-p-10333732.html

使用Remove移除

string a = "a,b,c,d,e,f,";
a = a.Remove(a.Length-1, 1);

使用Substring进行截取

string a = "a,b,c,d,e,f,";
a = a.Substring(0, a.Length - 1);

C#点击关闭按钮 弹出确认框

https://blog.csdn.net/I_AM_KK/article/details/123106744?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-1-123106744-blog-126733132.pc_relevant_vip_default&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-1-123106744-blog-126733132.pc_relevant_vip_default&utm_relevant_index=2

方法一:使用代码

private void Form1_Load(object sender, EventArgs e)
{
    this.FormClosing += new FormClosingEventHandler(Form1_FormClosing);//注册窗体关闭事件
}

private void Form1_FormClosing(object sender, FormClosingEventArgs e)//窗体关闭响应函数
{
    //让用户选择点击
    DialogResult result = MessageBox.Show("是否确认关闭?", "警告",
                                          MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
    
    if (result == DialogResult.No)//判断是否取消事件
    {
        e.Cancel = true;//取消退出
    }
}

方法二:设置窗体属性

private void Form1_Load(object sender, EventArgs e)
{

}

private void Form1_FormClosing(object sender, FormClosingEventArgs e)//窗体关闭响应函数
{
    //让用户选择点击
    DialogResult result = MessageBox.Show("是否确认关闭?", "警告",
                                          MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
    
    if (result == DialogResult.No)//判断是否取消事件
    {
        e.Cancel = true;//取消退出
    }
}

在这里插入图片描述

内容解释

MessageBoxButtons.YesNo是“是 否”按钮的类型

在这里插入图片描述

MessageBoxButtons.OKCancel是“确认 取消”

在这里插入图片描述

可随便写


MessageBoxIcon.Question是疑问的图标

在这里插入图片描述

MessageBoxIcon.Warning是警告的图标

在这里插入图片描述

可以随便改

c# progressBar进度条改变颜色及显示进度数字

https://blog.csdn.net/czcl123/article/details/72782961?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-1-72782961-blog-113663484.pc_relevant_vip_default&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-1-72782961-blog-113663484.pc_relevant_vip_default&utm_relevant_index=2

在这里插入图片描述

namespace WindowsFormsApp1
{
    public partial class MyProgressBar : ProgressBar
    {
        public static SolidBrush brush = new SolidBrush(Color.White);

        public MyProgressBar()
        {
            InitializeComponent();
            base.SetStyle(ControlStyles.UserPaint, true);
        }

        //重写OnPaint方法
        protected override void OnPaint(PaintEventArgs e)
        {
            Rectangle rec = e.ClipRectangle;
            rec.Width = (int)(rec.Width * ((double)Value / Maximum)) - 4;
            if (ProgressBarRenderer.IsSupported)
                ProgressBarRenderer.DrawHorizontalBar(e.Graphics, e.ClipRectangle);
            rec.Height = rec.Height - 4;
            e.Graphics.FillRectangle(brush, 2, 2, rec.Width, rec.Height);
        }
    }
}
MyProgressBar myProgressBar = new MyProgressBar();//重新定义的继承自ProgressBar的类,用于改变进度条的颜色

int Battery = 8300;
private void button1_Click(object sender, EventArgs e)
{
    if (Battery >= 7900)
    {
        brush = new SolidBrush(Color.Green);
    }
    else if (Battery >= 7600)
    {
        brush = new SolidBrush(Color.Yellow);
    }
    else
    {
        brush = new SolidBrush(Color.Red);
    }
    this.myProgressBar.Value = Battery - 7300;
}

private void Form1_Load(object sender, EventArgs e)
{
    myProgressBar.Parent = progressBar1;
    myProgressBar.Maximum = 1000;
    myProgressBar.Minimum = 0;
    myProgressBar.Value = 0;
    myProgressBar.Width = progressBar1.Width;
    myProgressBar.Height = progressBar1.Height;
    progressBar1.Controls.Add(myProgressBar);
}

在这里插入图片描述

在这里插入图片描述

相关代码我放在了CSDN的资源里面,《C# 改变progressBar进度条的颜色》

C#一个窗体读取另一个窗体上控件的内容

https://www.cnblogs.com/Fpack/p/15334859.html

在Form2中调用Form1的内容,则在Form2中改变以下代码:

private Form1 form1;
public Form2(Form1 parent)
{
    InitializeComponent();
    form1 = parent;
}

相关文章:

  • 4线SPI驱动OLED常规操作
  • ESP32 OTA
  • Linux C编程一站式学习笔记2
  • RK3568平台开发系列讲解(摄像头篇)使用 Camera 的步骤
  • Kerberos的概述和认证原理
  • RocketMQ的TAG过滤和SQL过滤机制
  • 2023年电气,电子与信息工程国际会议(ISEEIE 2023)
  • 【前端开发学习】4.JavaScript
  • 【大数据技术Hadoop+Spark】HBase分布式数据库架构、特点、数据存储方式、寻址机制详解(图文解释)
  • K8s——Service、代理模式演示(二)
  • 哈希表及其与Java类集的关系
  • CSS基础总结(二)
  • 《Python多人游戏项目实战》第三节 在窗口上显示玩家ID以及对话内容
  • SpringBoot【配置文件】
  • 王卫点赞友商?北京快递保卫战,顺丰彰显大格局大气度
  • [译]Python中的类属性与实例属性的区别
  • 07.Android之多媒体问题
  • docker python 配置
  • DOM的那些事
  • FineReport中如何实现自动滚屏效果
  • LeetCode刷题——29. Divide Two Integers(Part 1靠自己)
  • mysql_config not found
  • SegmentFault 技术周刊 Vol.27 - Git 学习宝典:程序员走江湖必备
  • SQLServer之索引简介
  • Vue源码解析(二)Vue的双向绑定讲解及实现
  • webpack项目中使用grunt监听文件变动自动打包编译
  • windows-nginx-https-本地配置
  • 从零到一:用Phaser.js写意地开发小游戏(Chapter 3 - 加载游戏资源)
  • 开年巨制!千人千面回放技术让你“看到”Flutter用户侧问题
  • 利用DataURL技术在网页上显示图片
  • 让你成为前端,后端或全栈开发程序员的进阶指南,一门学到老的技术
  • 深入浅出webpack学习(1)--核心概念
  • 适配mpvue平台的的微信小程序日历组件mpvue-calendar
  • 说说动画卡顿的解决方案
  • 系统认识JavaScript正则表达式
  • 想使用 MongoDB ,你应该了解这8个方面!
  • 原生 js 实现移动端 Touch 滑动反弹
  • nb
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • ionic入门之数据绑定显示-1
  • linux 淘宝开源监控工具tsar
  • 带你开发类似Pokemon Go的AR游戏
  • 好程序员大数据教程Hadoop全分布安装(非HA)
  • ​ 无限可能性的探索:Amazon Lightsail轻量应用服务器引领数字化时代创新发展
  • ​批处理文件中的errorlevel用法
  • #1015 : KMP算法
  • (1)Map集合 (2)异常机制 (3)File类 (4)I/O流
  • (1/2)敏捷实践指南 Agile Practice Guide ([美] Project Management institute 著)
  • (LeetCode) T14. Longest Common Prefix
  • (草履虫都可以看懂的)PyQt子窗口向主窗口传递参数,主窗口接收子窗口信号、参数。
  • (翻译)Entity Framework技巧系列之七 - Tip 26 – 28
  • (附源码)ssm教师工作量核算统计系统 毕业设计 162307
  • (附源码)ssm跨平台教学系统 毕业设计 280843
  • (机器学习-深度学习快速入门)第一章第一节:Python环境和数据分析
  • (论文阅读30/100)Convolutional Pose Machines