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

c# 笔记 winform添加右键菜单,获取文件大小 ,多条件排序OrderBy、ThenBy,list<double>截取前5个

在这里插入图片描述

Winform右键菜单‌

要在C# Winform应用程序中添加右键菜单,‌你可以按照以下步骤操作:‌

1.‌创建菜单项‌

在Form的构造函数或加载事件中,‌创建ContextMenuStrip控件的实例,‌并为其添加菜单项。‌

2.‌绑定到控件‌

将ContextMenuStrip控件绑定到需要显示右键菜单的控件上,‌如Panel、‌DataGridView等。‌

3.‌编写菜单项事件‌

为每个菜单项编写点击事件,‌以实现所需的功能。‌

示例代码如下:‌

public Form1()
{InitializeComponent();ContextMenuStrip cms = new ContextMenuStrip();cms.Items.Add("菜单项1").Name = "menuItem1";cms.Items.Add("菜单项2").Name = "menuItem2";this.panel1.ContextMenuStrip = cms;cms.ItemClicked += Cms_ItemClicked;
}
private void Cms_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
{switch (e.ClickedItem.Name){case "menuItem1":// 实现菜单项1的功能break;case "menuItem2":// 实现菜单项2的功能break;}
}

获取文件大小

在C#中,‌获取文件大小可以通过以下几种方式实现:‌

1.‌使用FileInfo类‌

FileInfo 类提供了 Length 属性,‌可以直接获取文件的大小。‌

FileInfo fileInfo = new FileInfo("文件路径");
long size = fileInfo.Length;
2.‌使用File类的静态方法‌

File.GetAttributes 方法可以用来获取文件的大小,‌但更常用的是获取文件属性,‌直接获取大小不是其主要用途。‌
更推荐使用 FileInfo 或下面的 FileStream。‌

3.‌使用FileStream类‌

通过创建 FileStream 实例并使用其 Length 属性获取文件大小。‌

using (FileStream fs = new FileStream("文件路径", FileMode.Open))
{long size = fs.Length;
}

多条件排序OrderBy、ThenBy

在C#中,‌实现多条件排序通常使用OrderBy和ThenBy方法。‌

1.‌基本用法‌

OrderBy:‌根据指定的键选择器函数对序列的元素进行排序。‌
ThenBy:‌在OrderBy排序的基础上,‌进一步根据指定的键选择器函数对序列的元素进行排序。‌

2.‌示例代码‌
var sortedList = list.OrderBy(x => x.Field1).ThenBy(x => x.Field2).ThenByDescending(x => x.Field3).ToList();
3.‌注意事项‌

OrderBy和ThenBy可以链式调用,‌实现多级排序。‌
可以使用OrderByDescending和ThenByDescending进行降序排序。‌

list截取前5个

using System;
using System.Collections.Generic;
using System.Linq;class Program
{static void Main(){List<double> list = new List<double> { 1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7, 8.8, 9.9 };List<double> firstFive = list.Take(5).ToList();foreach (double number in firstFive){Console.WriteLine(number);}}
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 一篇入门C语言【文件】
  • AMP网站的SEO 关于“备用网页”应该如何处理?
  • 鸿蒙模拟器篇
  • 地产行业如何利用Java实现精准营销
  • Winform -- ​c#:SynchronizationContext
  • vue3+ts封装一个uniapp的自动滚动列表,实现看板效果
  • 国内超声波清洗机哪个品牌好?质量好的超声波清洗机推荐
  • 026集——在旧式编码与 Unicode 之间转换(C# 编程指南)——C#学习笔记
  • 【算法】C++贪心算法解题(单调递增数字、坏了的计算器、合并区间)
  • PostgreSQL 中的 `generate_series` 函数使用
  • MAT:一款针对MSSQL服务器的安全检测与审计工具
  • 【C++】C++智能指针详解
  • VUE3 使用 <transition> 实现组件切换的过渡效果
  • 【日常记录-Linux】WebDriver
  • 如何打造抗冲击的超级电容器?用啥材料好?
  • 【391天】每日项目总结系列128(2018.03.03)
  • Android 初级面试者拾遗(前台界面篇)之 Activity 和 Fragment
  • Android开发 - 掌握ConstraintLayout(四)创建基本约束
  • angular组件开发
  • Bootstrap JS插件Alert源码分析
  • C++类中的特殊成员函数
  • CentOS从零开始部署Nodejs项目
  • crontab执行失败的多种原因
  • ECMAScript 6 学习之路 ( 四 ) String 字符串扩展
  • JAVA_NIO系列——Channel和Buffer详解
  • JS基础之数据类型、对象、原型、原型链、继承
  • Redis 懒删除(lazy free)简史
  • Spring Security中异常上抛机制及对于转型处理的一些感悟
  • Spring技术内幕笔记(2):Spring MVC 与 Web
  • SQLServer插入数据
  • TiDB 源码阅读系列文章(十)Chunk 和执行框架简介
  • 得到一个数组中任意X个元素的所有组合 即C(n,m)
  • 汉诺塔算法
  • 算法系列——算法入门之递归分而治之思想的实现
  • 原生JS动态加载JS、CSS文件及代码脚本
  • gunicorn工作原理
  • !!【OpenCV学习】计算两幅图像的重叠区域
  • # Panda3d 碰撞检测系统介绍
  • #QT 笔记一
  • (13)Hive调优——动态分区导致的小文件问题
  • (14)目标检测_SSD训练代码基于pytorch搭建代码
  • (2)从源码角度聊聊Jetpack Navigator的工作流程
  • (22)C#传智:复习,多态虚方法抽象类接口,静态类,String与StringBuilder,集合泛型List与Dictionary,文件类,结构与类的区别
  • (8)STL算法之替换
  • (Matalb时序预测)PSO-BP粒子群算法优化BP神经网络的多维时序回归预测
  • (pycharm)安装python库函数Matplotlib步骤
  • (第61天)多租户架构(CDB/PDB)
  • (佳作)两轮平衡小车(原理图、PCB、程序源码、BOM等)
  • (剑指Offer)面试题34:丑数
  • (七)c52学习之旅-中断
  • (深度全面解析)ChatGPT的重大更新给创业者带来了哪些红利机会
  • (十二)Flink Table API
  • (十一)手动添加用户和文件的特殊权限
  • (一)UDP基本编程步骤
  • (转)Sublime Text3配置Lua运行环境