前些时候因为想拥有一个自己的软件快捷打开软件,于是参考Windows 11的开始菜单,进行了编写这个应用软件,里面有一个功能就是对显示的Panel里的应用对象的分页功能,于是就想写一个对Panel的自定义滚动条控件。

下面开始介绍此控件的功能。

  1、 项目目录;

  

  2、 源码介绍;

  1) 控件代码;

  先计算能显示的页数显示:

  

让页数能够点击切换:

  2) 应用代码;

  添加滚动条控件:

  

Panel的鼠标滚动响应事件:

  加载需要的控件到Panel里:

3)分为水平和垂直两个控件;

水平和垂直两个的区别是鼠标滚动和加载Panel里控件的代码不同。

  3、 运行界面;

  1)垂直条;该控件显示在Panel的右边,以点的形式显示分页:

  

  2)水平条;该控件显示在Panel的底部,以点的形式显示分页:

  

  4、 使用介绍;

  1) 将控件类库引用到UI项目中;(主要是PanelScrollPage目录下的控件文件)

  2) 在UI窗体里添加下列代码:

  (1)    复制此例子项目中的“私有变量”、“自定义函数”、“PanelCtl_MouseWheel”项到窗体里;

  (2)    在窗体的代码里添加:

  (2.1)在窗体的构造函数里添加:this.PanelCtl.MouseWheel += PanelCtl_MouseWheel;

  (2.2)在窗体的Load事件中添加Add此自定义滚动条控件的代码;

  (2.3)修改AddApp2Display函数往Panel里添加控件,并根据Panel里的控件的大小进行修改控件的高、宽,以及Top、Left里的100为高、宽;

  (2.4)修改LoadApps里的70这个数字,用一个变量来替代,用来显示当前添加的控件总数;修改_TotalPage计算的那个32为一页能放的多少个控件;

    注:如果有删除Panel里的控件的,则需要在删除后调用一下LoadApps函数。

  5、 源码下载;

  https://download.csdn.net/download/lzhdim/90786933

  6、 其它建议;

  这个例子是笔者编写应用的时候剥离出来的,放上来分享给读者,请需要的读者自己复用此代码。

C#开发的Panel滚动分页控件 - 开源研究系列文章的更多相关文章

  1. C#开发的线程池和管理器 - 开源研究系列文章

    上次编写了一个小软件,用于练手及自己的一个小工具集合.今天把其中的线程池和管理器的代码抽取出来,写成一个博文,让需要的朋友能够进行学习和应用. 这个线程管理器包括了3个类库和一个应用程序,见下图: 第 ...

  2. C#开发的插件程序 - 开源研究系列文章

    上次编写了一个家庭小助手的小工具软件,也对其中的线程池及管理器进行了介绍(见博文:C#开发的线程池和管理器 - 开源研究系列文章),这次把里面的插件部分的功能单独放出来进行介绍,让更多的朋友能够进行学 ...

  3. Repeater + 分页控件 AspNetPager 研究

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default3.aspx.cs ...

  4. C#面向插件级别的软件开发 - 开源研究系列文章

    在现在的面向对象的分析与设计软件开发过程中,最开始就是面向对象的软件开发.但是,在实际的软件开发过程中,很多都是面向接口的开发方式,这种是一种面向对象开发的模式.但是,今天笔者给大家带来的是面向插件的 ...

  5. C#开发的磁吸屏幕类库 - 开源研究系列文章

    上次写了一个关于线程池的博文,里面讲到了关于磁吸屏幕的类库,今天就把这个类库进行下讲解. 一.      类库目录: 类库的目录见下图,主要定义了Win32的一些API,以及一些API使用到的常量和结 ...

  6. C#开发的资源文件程序(可国际化) - 开源研究系列文章

    上次将小软件的线程池描述了,也将插件程序描述了,这次就将里面的资源文件相关的内容进行下记录,这里能够让程序做成国际化的形式(即多语言程序),主要就是通过这个资源文件的方式进行的处理.下面将对这个资源文 ...

  7. asp.net webform 自定义分页控件

    做web开发一直用到分页控件,自己也动手实现了个,使用用户自定义控件. 翻页后数据加载使用委托,将具体实现放在在使用分页控件的页面进行注册. 有图有真相,给个直观的认识: 自定义分页控件前台代码: & ...

  8. 日积月累系列之分页控件(js源码)

    最近开发了一款分页控件,分享给大家. 主要功能和界面介绍 cform分页控件支持服务端分页.客户端分页.数据过滤.数据排序等功能. 源码介绍 cform-pager分页控件主要由三部分组成:css.s ...

  9. OCUI界面设计:滚动视图与分页控件初探

    滚动视图(UIScrollView) 简单介绍 1.UIScrollView滚动视图能够排列并显示超出自身显示范围的内容. 2.UIScrollView内部整合了多种手势来达到丰富的界面展示效果. 3 ...

  10. winform快速开发平台 -> 基础组件之分页控件

    一个项目控件主要由及部分的常用组件,当然本次介绍的是通用分页控件. 处理思想:我们在处理分页过程中主要是针对数据库操作. 一般情况主要是传递一些开始位置,当前页数,和数据总页数以及相关关联的业务逻辑. ...

随机推荐

  1. kubesphere应用系列(四)--创建自动流水线

    第一步创建多分支流水线 复制生成的url,也可以在编辑设置时复制   第二步新增Jenkinsfile文件 新增Jenkinsfile文件放在根目录 方式一:官方示例:https://github.c ...

  2. autMan奥特曼机器人-autMan的PHP环境

    直装版请自行安装php环境. docker版本预置了php环境,如下图: 如果使用插件"test php"测试环境时,实时日志有报错如下: 可进入终端,输入两条命令 apk add ...

  3. Typecho浏览统计和热门文章调用插件TePostViews

    TePostViews是一款简单的typecho热门文章调用插件,通过该插件可以显示每篇文章的阅读次数,以及调用阅读次数最多或者评论数最多的文章作为热门文章调用,用户可以自由选择调用依据和调用文章的数 ...

  4. [爬坑指南] 虚拟机和docker实现下载服务器

    现在需要挂梯子下载一批资源,然而我的梯子装在路由器中,openclash只能配置指定的某个设备不走梯子.所以索性就装个虚拟机专门用来下载东西,挂bt.如果需要走梯子,就单独在这个下载机中配置一个廉价梯 ...

  5. 一个nginx + vue下二级路径版本化方案

    PS: 尽量不要做版本化!尽量不要做版本化!尽量不要做版本化! 过程说明: 1.arg_appver表示读取url上appver参数 2.对appver参数做变量映射得到alias_party1_te ...

  6. 浅谈processing-java.exe应用程序的使用(与PowerShell的联合)

    简单总结一下processing-java.exe的使用,以及和PowerShell结合,如何互相调用和传参. Processing-java 这是 processing-java.exe 的官方说明 ...

  7. C++ open()和read()函数使用详解

    对于Framework工程师来说,必要C或者C++编程能力是必须的,像对设备节点的操作是最基本的操作,那么我们便会用到open和read函数.open()函数用于打开文件,而read()函数用于从打开 ...

  8. linux configure: error: no acceptable C compiler found in $PATH

    前言 在 Linux 上安装 pgsql时,执行 ./configure --prefix=/usr/local/pgsql 报错,同以下: [root@instance-0qymp8uo postg ...

  9. GitFlow ⼯作流

    前言 Git 是一个开源分布式版本控制系统,它可以很方便的帮我们记录文件的改动,就像下面一样: 我们可以很快的跳到文件改动的某一个版本(就像时空穿梭一样). Git 在程序开发中,作为一个源码管理系统 ...

  10. 编写你的第一个 Django 应用程序,第6部分

    本教程从教程 5 停止的地方开始.我们已经构建了一个经过测试的网络投票应用程序,现在我们将添加一个样式表和一个图像. 除了服务器生成的 HTML 之外,Web 应用程序通常需要提供呈现完整网页所需的其 ...