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

ListBox显示最新数据、左移和右移操作

1、程序

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using static System.Windows.Forms.VisualStyles.VisualStyleElement.ProgressBar;namespace ListBoxApp
{public partial class Form1 : Form{Timer timer;bool isRun = false;int count = 0;int MAX_COUNT = 20;string filename = "";/// <summary>/// 构造函数/// </summary>public Form1(){InitializeComponent();MoveInitialize();}/// <summary>/// 窗体加载/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void Form1_Load(object sender, EventArgs e){timer = new Timer();timer.Interval = 500;timer.Tick += Timer_Tick;timer.Start();}/// <summary>/// 定时处理/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void Timer_Tick(object sender, EventArgs e){if (isRun){string str = $"No. {count} item";ListBoxSaveAndAdd(filename,listBox1, str, MAX_COUNT);count++;}}/// <summary>/// 测试开启和停止/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void btStart_Click(object sender, EventArgs e){if (btStart.Text.Equals("开始")){btStart.Text = "停止";listBox1.Items.Clear();filename = Path.Combine(Environment.CurrentDirectory, "f"+DateTime.Now.ToString("yyyyMMdd_HHmmssFFF")+".txt");count = 0;isRun = true;}else{btStart.Text = "开始";isRun = false;}}#region 显示(最新数据)和保存/// <summary>/// 数据保存和ListBox添加/// </summary>/// <param name="filename"></param>/// <param name="listBox"></param>/// <param name="text"></param>/// <param name="maxCount"></param>public static void ListBoxSaveAndAdd(string filename, ListBox listBox, string text, int maxCount){FileStreamWriter(filename, text);ListBoxScrollAddCross(listBox, text, maxCount);}/// <summary>/// 文件保存/// </summary>/// <param name="filename"></param>/// <param name="content"></param>public static void FileStreamWriter(string filename, string content){using (StreamWriter sw = new StreamWriter(filename, true)){sw.WriteLine(content);}}/// <summary>/// listBox跨域处理/// </summary>/// <param name="listBox"></param>/// <param name="text"></param>/// <param name="maxCount"></param>public static void ListBoxScrollAddCross(ListBox listBox, string text, int maxCount){if (listBox.InvokeRequired){MethodInvoker mi = delegate (){ListBoxScrollAdd(listBox, text, maxCount);};listBox.Invoke(mi);}else{ListBoxScrollAdd(listBox, text, maxCount);}}/// <summary>/// listBox添加/// </summary>/// <param name="listBox"></param>/// <param name="text"></param>/// <param name="maxCount"></param>public static void ListBoxScrollAdd(ListBox listBox, string text, int maxCount){listBox.Items.Add(text);if (listBox.Items.Count > maxCount){listBox.Items.RemoveAt(0);}listBox.TopIndex = listBox.Items.Count - (int)(listBox.Height / listBox.ItemHeight);}#endregion#region 左移和右移/// <summary>/// 移动初始化/// </summary>private void MoveInitialize(){listBox2.Items.Add("产品设计");listBox2.Items.Add("硬件设计");listBox2.Items.Add("逻辑设计");listBox2.Items.Add("软件设计");}/// <summary>/// 右移/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void BtnAddProject_Click(object sender, EventArgs e){if (listBox2.Items.Count > 0){CurrentMove(listBox2, listBox3);}}/// <summary>/// 左移/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void BtnRemoveProject_Click(object sender, EventArgs e){if (listBox3.Items.Count > 0){CurrentMove(listBox3, listBox2);}     }/// <summary>/// 移动处理/// </summary>/// <param name="source"></param>/// <param name="target"></param>public void CurrentMove(ListBox source,ListBox target){foreach(var selectItem in source.SelectedItems){target.Items.Add((string)selectItem);}List<int> list = new List<int>();foreach(int item in source.SelectedIndices){list.Add(item);}for(int i=list.Count-1; i>=0; i--){source.Items.RemoveAt(list[i]);}}#endregion}
}

2、运行效果
在这里插入图片描述

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 对中文进行文本分类的常用方法
  • openssl+keepalived安装部署
  • GPT-4论文阅读
  • 9.15 BFS中等 133 Clone Graph review 138 随机链表的复制
  • TikTok商家如何通过真人测评提高流量和销量?
  • Leetcode 第 414 场周赛题解
  • 远程桌面内网穿透是什么?有什么作用?
  • 最新安装vmware地址(官网找半天没找到)
  • Linux: network: IPv6: ESP: UDP checksum error 一例
  • 【devops】devops-git之git分支与标签使用
  • 机器学习实战21-基于XGBoost算法实现糖尿病数据集的分类预测模型及应用
  • redis windows安装包下载路径
  • CGAL 从DSM到DTM filtering
  • 中间件之RocketMQ
  • BSN六周年:迈向下一代互联网
  • 【划重点】MySQL技术内幕:InnoDB存储引擎
  • 2019.2.20 c++ 知识梳理
  • Babel配置的不完全指南
  • ComponentOne 2017 V2版本正式发布
  • CSS进阶篇--用CSS开启硬件加速来提高网站性能
  • css系列之关于字体的事
  • css选择器
  • Git初体验
  • Java-详解HashMap
  • PHP 程序员也能做的 Java 开发 30分钟使用 netty 轻松打造一个高性能 websocket 服务...
  • spring + angular 实现导出excel
  • Vue2.0 实现互斥
  • win10下安装mysql5.7
  • 从零开始的无人驾驶 1
  • 给第三方使用接口的 URL 签名实现
  • 解决iview多表头动态更改列元素发生的错误
  • 前端学习笔记之原型——一张图说明`prototype`和`__proto__`的区别
  • 文本多行溢出显示...之最后一行不到行尾的解决
  • 一些基于React、Vue、Node.js、MongoDB技术栈的实践项目
  • PostgreSQL之连接数修改
  • 阿里云移动端播放器高级功能介绍
  • ​flutter 代码混淆
  • $.ajax()
  • (4)事件处理——(7)简单事件(Simple events)
  • (solr系列:一)使用tomcat部署solr服务
  • (九)One-Wire总线-DS18B20
  • (面试必看!)锁策略
  • (十六)视图变换 正交投影 透视投影
  • (四)opengl函数加载和错误处理
  • (学习日记)2024.04.10:UCOSIII第三十八节:事件实验
  • (一)python发送HTTP 请求的两种方式(get和post )
  • (已更新)关于Visual Studio 2019安装时VS installer无法下载文件,进度条为0,显示网络有问题的解决办法
  • (总结)Linux下的暴力密码在线破解工具Hydra详解
  • .bat批处理(五):遍历指定目录下资源文件并更新
  • .cn根服务器被攻击之后
  • .NET Core MongoDB数据仓储和工作单元模式封装
  • .NET 某和OA办公系统全局绕过漏洞分析
  • .Net 执行Linux下多行shell命令方法
  • .NET 直连SAP HANA数据库
  • .net中的Queue和Stack