当前位置: 首页 > 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【配置文件】
  • 王卫点赞友商?北京快递保卫战,顺丰彰显大格局大气度
  • [分享]iOS开发 - 实现UITableView Plain SectionView和table不停留一起滑动
  • 【面试系列】之二:关于js原型
  • 【跃迁之路】【733天】程序员高效学习方法论探索系列(实验阶段490-2019.2.23)...
  • Facebook AccountKit 接入的坑点
  • Python 基础起步 (十) 什么叫函数?
  • python3 使用 asyncio 代替线程
  • select2 取值 遍历 设置默认值
  • Theano - 导数
  • yii2权限控制rbac之rule详细讲解
  • 百度贴吧爬虫node+vue baidu_tieba_crawler
  • 从零开始学习部署
  • 每天10道Java面试题,跟我走,offer有!
  • 腾讯大梁:DevOps最后一棒,有效构建海量运营的持续反馈能力
  • 由插件封装引出的一丢丢思考
  • “十年磨一剑”--有赞的HBase平台实践和应用之路 ...
  • 哈罗单车融资几十亿元,蚂蚁金服与春华资本加持 ...
  • 如何在 Intellij IDEA 更高效地将应用部署到容器服务 Kubernetes ...
  • 通过调用文摘列表API获取文摘
  • ​LeetCode解法汇总2808. 使循环数组所有元素相等的最少秒数
  • ​草莓熊python turtle绘图代码(玫瑰花版)附源代码
  • # .NET Framework中使用命名管道进行进程间通信
  • # 手柄编程_北通阿修罗3动手评:一款兼具功能、操控性的电竞手柄
  • (7)STL算法之交换赋值
  • (Java数据结构)ArrayList
  • (libusb) usb口自动刷新
  • (附源码)springboot高校宿舍交电费系统 毕业设计031552
  • ... fatal error LINK1120:1个无法解析的外部命令 的解决办法
  • ./include/caffe/util/cudnn.hpp: In function ‘const char* cudnnGetErrorString(cudnnStatus_t)’: ./incl
  • .NET 实现 NTFS 文件系统的硬链接 mklink /J(Junction)
  • .net中的Queue和Stack
  • /run/containerd/containerd.sock connect: connection refused
  • @RequestMapping用法详解
  • @取消转义
  • [ vulhub漏洞复现篇 ] Apache APISIX 默认密钥漏洞 CVE-2020-13945
  • [100天算法】-二叉树剪枝(day 48)
  • [14]内置对象
  • [2008][note]腔内级联拉曼发射的,二极管泵浦多频调Q laser——
  • [3D游戏开发实践] Cocos Cyberpunk 源码解读-高中低端机性能适配策略
  • [Android]创建TabBar
  • [Angular] 笔记 9:list/detail 页面以及@Output