winform

WinForm分页控件

核能气质少年 提交于 2019-12-18 00:21:30
说到数据分页,大家一定就会想到分页控件,无论是Web的或者是Winform的项目,相信很多人都会去使用分页控件,因为简单吗,可以少敲很多的代码,哈哈,我也是其中的一个,接下来 就把一个比较好的 Winform分页控件和大家分享一下. 分页控件的效果图如下: (下载地址在文章的最后)首先我们先把,下载下来的压缩包中的分页控件DLL文件夹中的WinFormPager.dll文件放到你的项目的bin文件夹下,然后在vs2008工具箱的单机鼠标右键,选择-选择项,然后选择浏览,找到你bin中的WinFormPager.dll然后确定,分页控件就添加到你的工具箱中了,接下来在你的项目上引用里右键,选择添加引用,也是浏览找到bin中的WinFormPager.dll,这一步不要忘,否则可能会找不到分页控件,好了接下来看代码吧 首先需要建一个PageData.cs的分页控件数据提供类,代码如下: 分页控件数据提供类 /// <summary> /// 分页控件数据提供类 /// </summary> public class PageData { private int _PageSize = 10; private int _PageIndex = 1; private int _PageCount = 0; private int _TotalCount = 0; private

使用LoadRunner11运行.NET4.5编译的Winform程序

寵の児 提交于 2019-12-17 14:52:49
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 我的操作系统是Win7旗舰版,安装了LoadRunner11,安装过程可参考这篇文章: http://my.oschina.net/Tsybius2014/blog/704949 现使用VS2012建立了Windows窗体应用程序,里面放置了一个WebBrowser控件,URL设置为www.baidu.com 使用LoadRunner11录制该程序的脚本时,将 Program to record 配置成该Winform应用程序即可: 点击OK按钮就可以开始录制了,可以发现在操作程序时event数一直在增长 录制完毕后,可以观察到录制好的脚本 再说一件比较坑爹的事情,有的时候用LoadRunner11运行Winform程序,运行后Winform程序会直接崩溃。 问题事件名称通常为BEX,故障模块是StackHash_0a9e。这个问题我上网查了些资料,发现是因为该程序在“数据执行保护”下运行的缘故。 如果在任务管理器中添加列“数据执行保护”,就可以看到当前的应用程序是否启用了数据执行保护功能(英文简称DEP)。 如果exe程序开启了DEP,那么很有可能用LoadRunner11打开时程序会崩溃,这时候需要在系统属性的性能选项中不启用DEP的程序列表中添加此程序。 但很多程序被要求必须在启用DEP的情况下运行

Winform文件下载之断点续传

半腔热情 提交于 2019-12-17 14:25:03
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 在本系列的前两篇文章中,分别向大家介绍了用于完成下载任务的 WebClinet 和 WinINet 的基本用法和一些实用技巧。 今天来为大家讲述下载过程中最常遇到的断点续传问题。 首先明确一点,本文所说的断点续传特指 HTTP 协议中的断点续传,文章中讲述了实现断点续传的方法思路和关键代码,想了解更多细节的同学,请下载并查看本文附带的 demo。 工作原理 http 协议中定义了一些请求/响应头,通过组合使用这些头信息,即可实现分批下载同一文件的目的。例如,在一次 http 请求中只请求文件中的一部分数据,然后将请求到的数据保存起来,下次只需请求剩余部分的数据,当全部数据都下载到本地后再完成数据的合并工作。 http 协议指出,可以通过 http 请求中的 Range 头来指定请求数据的范围。 Range 头的使用很简单,按照如下的格式使用即可: Range: bytes=500-999 上述意思为:只请求目标文件的第500至第999,这500个字节。 举例说明,有一个1000 字节大小的文件需要下载,第一次请求时不指定 Range 头,表示下载整个文件;但在下载完第499个字节后,下载被中断了,那么在下一次请求剩余文件时,只需要下载第500个至第999个字节的数据即可。 原理看上去很简单

Winform文件下载之WinINet

随声附和 提交于 2019-12-17 14:15:08
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 在C#中,除了webclient我们还可以使用一组WindowsAPI来完成下载任务。这就是Windows Internet,简称 WinINet。本文通过一个demo来介绍WinINet的基本用法和一些实用技巧。 系列文章 Winform文件下载之WebClient 接口介绍 相比WebClient的用法,Win32API在使用时可能会烦琐一些。所以先把用到的API简单介绍一下。 资源的初始化和释放 InternetOpen 这是需要调用的第一个方法,它会初始化内部数据结构,为后面的调用做准备。 InternetCloseHandle 这个方法用来关闭使用中打开的Internet句柄,释放资源。 建立到服务器的连接 InternetOpenUrl 这是一个通用的函数,应用程序可以用它来请求数据(只要是WinINet支持的协议就可以)。尤其是当我们仅仅想要通过一个URL获取数据,而不关心通信协议相关的内容时,这个接口就特别合适。该方法会解析参数中的URL字符串,然后建立到服务器的连接,并准备下载由RUL标识的数据。 检查响应信息 HttpQueryInfo 检索与HTTP请求相关的报头信息。主要是查看请求是否成功。 读取响应内容 InternetReadFile 从

winform线程间操作UI的五种方法

旧城冷巷雨未停 提交于 2019-12-17 08:11:07
经常因为需要在线程间操作UI而头疼,总结了一下,记录出来,以后方便查阅。 方法一 通过设置窗体属性,取消线程间的安全检查。(最简单,最省事,也是最不负责任的一种) 1 public partial class one : Form 2 { 3 public one() 4 { 5 InitializeComponent(); 6 Control.CheckForIllegalCrossThreadCalls = false;//取消线程间的安全检查 7 } 8 9 private void Form1_Load(object sender, EventArgs e) 10 { 11 Thread listen = new Thread(new ThreadStart(receive)); 12 listen.IsBackground = true; 13 listen.Start(); 14 } 15 private void receive() 16 { 17 UdpClient uc = new UdpClient(5839); 18 while (true) 19 { 20 IPEndPoint ip = null; 21 byte[] message = uc.Receive(ref ip); 22 string messagestring = Encoding.UTF8

winform中的多线程

断了今生、忘了曾经 提交于 2019-12-17 05:48:50
每一个从Control类中派生出来的WinForm类(包括Control类)都是依靠底层Windows消息和一个消息泵循环(message pump loop)来执行的。消息循环都必须有一个相对应的线程,因为发送到一个window的消息实际上只会被发送到创建该window的线程中去。其结果是,即使提供了同步(synchronization),你也无法从多线程中调用这些处理消息的方法。大多数plumbing是掩藏起来的,因为WinForm是用代理(delegate)将消息绑定到事件处理方法中的。WinForm将Windows消息转换为一个基于代理的事件,但你还是必须注意,由于最初消息循环的缘故,只有创建该form的线程才能调用其事件处理方法。如果你在你自己的线程中调用这些方法,则它们会在该线程中处理事件,而不是在指定的线程中进行处理。你可以从任何线程中调用任何不属于消息处理的方法。 Control类(及其派生类)实现了一个定义在System.ComponentModel命名空间下的接口 -- ISynchronizeInvoke,并以此来处理多线程中调用消息处理方法的问题: 1 public interface ISynchronizeInvoke 2 { 3   object Invoke(Delegate method, object [] args); 4  

C# Winform更换Webbrowse为WebKit

好久不见. 提交于 2019-12-16 12:21:12
本人第一次发表博文,内容不精也不是很有水平,请大家多多包涵~ 说到Webbrowser,可能大家都用过这个控件,它默认使用的是旧版本IE内核。 这就导致了一些问题,比如JS的加载不正确,这个问题就足够大了。 所以我就打算换掉Webbrowse的内核,(严格来说不是换内核,纯粹是替换23333) 好了废话不多说,针对新手。我们一步步来。 首先下载WebKit.NET的文件包 让我们来下载文件 然后解压,进入bin目录。 嗯,可以看见下面有这么多文件,这些文件和文件夹都得复制到你工程的Debug目录下。也就是和你的应用程序同级。 好了我们继续,在你的项目中引用WebKitBrowser.dll这个文件,效果如下。 然后打开设计器到你的MainForm或是别的需要浏览器的窗体。 拖拽一个WebBrowse控件到你窗体上,然后转到代码。 注意:不要双击WebBrowse控件去转到代码,不然IDE会给你添加一个Click事件23333. 然后这样写代码: private void webBrowser1_Load(object sender, EventArgs e) { webBrowser1.Navigate("https://www.baidu.com"); } 效果如下: WebBrowser1是那个控件的名字,接下来我们还得写点代码。 转到这个文件下 然后这样写: private

《Dotnet9》系列-开源C# Winform控件库1《HZHControls》强力推荐

别来无恙 提交于 2019-12-15 22:05:53
大家好,我是Dotnet9小编,一个从事dotnet开发8年+的程序员。我最近在写dotnet分享文章,希望能让更多人看到dotnet的发展,了解更多dotnet技术,帮助dotnet程序员应用dotnet技术更好的运用于工作和学习中去。 文章阅读导航 一、写在前面的话 二、HZHControls介绍 2.1 控件 2.1.1 表单控件 2.1.2 按钮 2.1.3 选项卡 2.1.4 树 2.1.5 平铺列表 2.1.6 导航 2.1.7 横向列表 2.1.8 自定义表格 2.1.9 进度条 2.1.10 步骤控件 2.1.11 面包屑导航 2.1.12 文字提示 2.1.13 滚动文字 2.1.14 滑块 2.1.15 水波 2.1.16 面板 2.1.17 图标 2.1.18 滚动条 2.1.19 图片采样 2.1.20 时间轴 2.1.21 穿梭框 2.1.22 引用区块 2.1.23 表单验证 2.1.24 分割线标签 2.2 窗体 2.2.1 提示窗体 2.2.2 多输入窗体 2.2.3 等待窗口 2.3 图表 2.3.1 组织结构图 2.3.2 滚动图表 2.3.3 雷达图 2.3.4 金字塔图 2.3.5 Live Charts 2.4 工业控件 2.4.1 LED文字 2.4.2 仪表 2.4.3 管道 2.4.4 阀门 2.4.5 鼓风机 2.4.6 传送带 2

《Dotnet9》系列-开源C# Winform控件库强力推荐

橙三吉。 提交于 2019-12-15 13:44:30
本系列已介绍一款国内开源C# Winform控件库,大家如有比较好的开源C# Winform控件库,欢迎向Dotnet9推荐,您可在本文下方留言,谢谢您对dotnet的关注和支持,让我们期待dotnet更好的明天,以下是Dotnet9已完成的1篇开源C# Winform控件库推荐文章: 1、 《Dotnet9》系列-开源C# Winform控件库1《HZHControls》强力推荐 本篇文章待完善后,将同步在博客园发表,谢谢大家支持! 除非注明,文章均由 Dotnet9 整理发布,欢迎转载。 转载请注明本文地址: https://dotnet9.com/2019/12/it-technology/csharp/winform/dotnet9-series-winform-controls.html 如有所收获,请大力转发(能点赞及推荐那是极好的);如觉小编写文不易,欢迎 给Dotnet9站点打赏 ,小编谢谢了;谢谢大家对dotnet技术的关注和支持 。 来源: https://www.cnblogs.com/lsq6/archive/2019/12/15/12043831.html

Winform中实现拖拽文件到ListView获取文件类型(附代码下载)

一曲冷凌霜 提交于 2019-12-12 09:30:46
场景 效果 注: 博客主页: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 获取编程相关电子书、教程推送与免费下载。 实现 新建一个form窗体,然后在窗体中拖拽一个ListView。 在form的shown事件中进行窗体的初始化。 private void Form1_Shown(object sender, EventArgs e) { listView1.GridLines = true;//在各数据之间形成网格线 listView1.View = View.Details;//显示列名称 listView1.FullRowSelect = true;//在单击某项时,对其进行选中 listView1.HeaderStyle = ColumnHeaderStyle.Nonclickable;//隐藏列标题 listView1.Columns.Add("文件名", listView1.Width - 65, HorizontalAlignment.Right);//设置头像 listView1.Columns.Add("类型", 60, HorizontalAlignment.Center);//设置头像 } 然后编写ListView的DragEnter事件 在事件中设置拖放目标中放置类型为复制