winform
风中暮雨
这个作者很懒,什么都没留下…
展开
-
OpenFileDialog对话框过滤文件类型(Filter)介绍
OpenFileDialog对话框的Filter属性说明:以往其他介绍太繁琐,以下直接说明如何使用,原理可以百度。 OpenFileDialog ofd = new OpenFileDialog(); ofd.Filter = "图片|*.gif;*.jpg;*.jpeg;*.bmp;*.jfif;*.png;";//限制只能选择这几种图片格式其格式为:“名称|*.需要筛选的文件后缀;” //加分号如果有多种同类型文件(比如都是图片),名称只需要写一个,后缀用分号(;)分隔....原创 2021-07-21 09:47:31 · 16530 阅读 · 0 评论 -
Visio Studio 中展示当前选中类或窗体代码显示内部方法列表
前段时间在用VS突然发现打开的文件没有导航窗格了,找了很久都没有找到,今天找到了发个博文记录以下:丢失导航窗格前的效果如下图:最后调成的效果如下图:操作步骤如下:打开VS ---》工具---》选项---》文本编辑器---》所有语言---》常规---》在右侧选项中将导航栏勾选上即可展示。...原创 2021-04-26 16:19:52 · 661 阅读 · 0 评论 -
C#中异步方法和同步方法对比
针对于Winform来说同步方法:1、卡界面,主线程忙于计算,无法顾及其他任务。2、执行速度慢,由于只有一个线程进行计算。3、有序执行任务异步方法:1、不卡界面,主线程闲置(可进行其他操作),计算机待办任务交由子线程来完成,改善用户体验。2、异步多线程执行速度快,可开启多个线程同时进行任务操作。3、无序执行计算机任务,启动无序:线程资源是向操作系统申请的,由操作系统的调度策略决定,所以启动顺序随机,同一个任务同一个线程,执行时间也不确定,CPU分片,结束也无序..原创 2020-07-09 00:11:14 · 1267 阅读 · 0 评论 -
C# 更新AssemblyInfo.cs的文件版本号(AssemblyFileVersion)
最近由于单位发布测试密度较大,因此手动更新每个程序集([assembly: AssemblyFileVersion("1.0.0.0")])的版本号,成了很头痛的事情,因此想着能自动在原有的基础上进行累加。 因为每个人用到的版本信息可能不是同一个值,仅以我自己用到的来举例[assembly: AssemblyFileVersion("1.0.0.0")],我修改的是第二位(标红的),话不多说直接上代码:首先是要选取路径(比较简单不进行赘述) 需要使用递归进行逐层进行文件筛...原创 2020-06-01 22:07:54 · 1626 阅读 · 0 评论 -
Winform开发框架之数据即时更新的实现
winform开发中有多种页面间的传值,下面介绍下通过事件进行页面的刷新操作1、Winform开发框架的界面层的继承关系在开篇之前,首先介绍一下Winform开发框架中的界面层的继承关系,首先我把所有窗体区分为三类,一类是普通的窗体,一类编辑窗体,还有一类是列表显示窗体。窗体的集成可以封装处理很多东西,良好的封装和继承,可以为我们提高效率,减少重复代码,它的作用不再在此讨论和强调。采用转载 2013-06-03 15:54:06 · 1454 阅读 · 0 评论 -
chart控件控制图形的大小和位置
实现这个 主要是对控件的属性进行操作,如果看图有什么不清楚的地方可以留意就行询问。第一步:点击饼图锁定框周围的空白部分或者点击饼图,选中后点击右上角的”小三角“,弹出Chart任务菜单,选择第一项Configure ChartArea:Default, 如果你的Series是被充命名的Default会显示你命名后的值。第二步:当点击第一项后会弹出一个属性框如下图:原创 2013-05-28 15:44:33 · 15009 阅读 · 1 评论 -
设置chart饼图中显示的线,以及显示百分比
chart1.Series["serYearPlay"].Points.DataBindXY(xvar, yvar); chart1.TextAntiAliasingQuality = TextAntiAliasingQuality.High; this.chart1.Series["serYearPlay"].Label = "#VALX (#原创 2013-05-13 17:09:41 · 7022 阅读 · 2 评论 -
Dundas chart 获取饼图上显示的值
//chart控件的 MouseDown事件private void chart1_MouseDown(object sender, MouseEventArgs e) { // Call Hit Test Method HitTestResult result = chart1.HitTest(e.X,原创 2013-04-19 17:57:51 · 1357 阅读 · 0 评论 -
C# 中ref 和out 参数的区别
ref 类型的参数:在你传递进一个方法的时候必须为其赋值,而out类型的参数在传递进去的时候一定不能赋值,但是在方法内部一定要为其赋值。正所谓ref有进有出,out无进必出(必须有值出来)原创 2013-04-15 15:31:28 · 729 阅读 · 0 评论 -
CodeJock如何通过vs编译成两个dll文件
CodeJock如何通过vs编译成两个dll文件?例如:一个Codejock.SkinFramework.v12.0.0.ocx 编译完成之后就是AxInterop.XtremeSkinFramework.dll 和Interop.XtremeSkinFramework.dll这个是怎么操作的呢 (听说是vs上自带一个工具可以实现这个,但是本人没有找到、用的是vs2005)?原创 2013-03-12 17:15:15 · 1464 阅读 · 0 评论 -
[C# 基础知识系列]专题三:如何用委托包装多个方法——委托链
引言: 上一专题介绍了下编译器是如何来翻译委托的,从中间语言的角度去看委托,希望可以帮助大家进一步的理解委托,然而之前的介绍都是委托只是封装一个方法,那委托能不能封装多个方法呢?因为生活中经常会听到,我代表大家的意见等这样的说话,既然委托也是一个代表,那他如果只能代表一个人,那他的魅力就不是很大了吧,所以我们就会委托能不能代表多个方法的? 答案是可以的,这就是本专题要讲的内容——委托链,委托链转载 2013-02-22 17:54:50 · 2441 阅读 · 0 评论 -
[C# 基础知识系列]专题一:深入解析委托——C#中为什么要引入委托
引言:对于一些刚接触C# 不久的朋友可能会对C#中一些基本特性理解的不是很深,然而这些知识也是面试时面试官经常会问到的问题,所以我觉得有必要和一些接触C#不久的朋友分享下关于C#基础知识的文章,所以有了这个系列,希望通过这个系列让朋友对C#的基础知识理解能够更进一步。然而委托又是C#基础知识中比较重要的一点,基本上后面的特性都和委托有点关系,所以这里就和大家先说说委托,为什么我们需要委托。转载 2013-02-22 17:23:37 · 540 阅读 · 0 评论 -
chart控件X轴(Y轴)数值显示不全
X轴数值显示不全如下图所示: 当添加了 Chart1.ChartAreas["Default"].AxisX.IntervalAutoMode = IntervalAutoMode.VariableCount;时显示的效果如下图:原创 2013-05-30 16:18:12 · 9464 阅读 · 2 评论 -
单个汉字转化为拼音,也可以获取汉字的首个字母
/// /// 单个汉字转化为拼音 /// /// 单个汉字 /// 拼音 public static string SingleChs2Spell(string SingleChs) { byte[] array; int iAsc; string strRtn = string.Empty; array = Enc原创 2013-05-31 17:05:16 · 775 阅读 · 0 评论 -
c# BackgroundWorker组件介绍(属性、方法、事件)
c# BackgroundWorker组件介绍(属性、方法、事件)在VS2005中添加了BackgroundWorker组件,该组件在多线程编程方面使用起来非常方便,然而在开始时由于没有搞清楚它的使用机制,走了不少的弯路,现在把我在使用它的过程中的经验与诸位分享一下。 BackgroundWorker类中主要用到的有这列属性、方法和事件: 重要属性: 1、Canc转载 2013-06-03 17:33:54 · 947 阅读 · 0 评论 -
word中替换被批注的正文的值
try { Word.Document document = (Word.Document)dsoWord.ActiveDocument; foreach (Word.Comment var in document.Comments) {原创 2013-06-05 16:42:42 · 3171 阅读 · 1 评论 -
将word文档转化为html(代码)
/// /// 把Word文档转化为Html文件 /// /// word文件名 /// 要保存的html文件名 /// public static bool WordToHtml(string wordFileName, string htmlFileName) {原创 2013-07-01 14:17:28 · 18104 阅读 · 3 评论 -
更改windows服务的配置文件(app.config)无需重新启动
这个问题是前一阶段写windows服务碰到的。本来在写获取配置文件的某个配置的值的时候,通常我都是写类似下面的这么一个静态方法来获取: 1: /// 2: /// 获取每次处理记录数 3: /// 4: /// 5: private static int Ge转载 2013-08-16 08:30:09 · 7649 阅读 · 3 评论 -
希望能有一个教我学wcf和wpf的大师..真心求助
教我学wcf和wpf原创 2013-10-18 10:07:04 · 855 阅读 · 0 评论 -
将数据导出为EXCEL文件
saveFileDialog1.Filter = "*.xls|.xls"; saveFileDialog1.FileName = DateTime.Now.ToShortDateString(); if (saveFileDialog1.ShowDialog() == DialogResult.OK)原创 2012-12-20 18:05:00 · 1423 阅读 · 0 评论 -
C# log4net 的配置
项目的日志组件是必备可少的,任何项目中都需要。这样既方便前期的开发测试也方便项目后期的项目维护。C#项目的一个不错的日志组件是log4net,下面我就把网站项目、桌面应用程序项目中log4net的如何配置粗略的介绍一下。网站项目中的配置首先,你得确保你的电脑是联网的。确保这一点后,我们就是先给项目中安装log4net。安装的方法有很多种,我粗略介绍一下我经常使用的方法:使用Visual S...转载 2019-01-08 16:03:26 · 953 阅读 · 0 评论 -
[C# 基础知识系列]专题二:委托的本质论
引言:上一个专题已经和大家分享了我理解的——C#中为什么需要委托,专题中简单介绍了下委托是什么以及委托简单的应用的,在这个专题中将对委托做进一步的介绍的,本专题主要对委本质和委托链进行讨论。一、委托的本质 平时我们很容易使用委托——用C# delegate关键字定义委托,再用new操作符构造委托实例,然后通过调用委托实例来调用回调方法(就是用一个了委托对象的变量来代替方法名,这句话如转载 2013-02-22 17:40:10 · 557 阅读 · 0 评论 -
C#多线程学习(五) 多线程的自动管理(定时器)
Timer类:设置一个定时器,定时执行用户指定的函数。 定时器启动后,系统将自动建立一个新的线程,执行用户指定的函数。初始化一个Timer对象: Timer timer = new Timer(timerDelegate, s,1000, 1000);// 第一个参数:指定了TimerCallback 委托,表示要执行的方法;// 第二个参数:转载 2013-02-21 15:00:34 · 562 阅读 · 0 评论 -
C#多线程学习(四) 多线程的自动管理(线程池)
在多线程的程序中,经常会出现两种情况:一种情况: 应用程序中,线程把大部分的时间花费在等待状态,等待某个事件发生,然后才能给予响应 这一般使用ThreadPool(线程池)来解决;另一种情况:线程平时都处于休眠状态,只是周期性地被唤醒 这一般使用Timer(定时器)来解决;ThreadPool类提供一个由系转载 2013-02-21 14:59:57 · 444 阅读 · 0 评论 -
C# 中的委托和事件
C# 中的委托和事件引言委托 和 事件在 .Net Framework中的应用非常广泛,然而,较好地理解委托和事件对很多接触C#时间不长的人来说并不容易。它们就像是一道槛儿,过了这个槛的人,觉得真是太容易了,而没有过去的人每次见到委托和事件就觉得心里别(biè)得慌,混身不自在。本文中,我将通过两个范例由浅入深地讲述什么是委托、为什么要使用委托、事件的由来、.Net Framework中的转载 2012-12-11 17:44:45 · 411 阅读 · 0 评论 -
sql事务处理
1 1--SQL事务处理: 2 2 3 3SET QUOTED_IDENTIFIER ON 4 4GO 5 5SET ANSI_NULLS ON 6 6GO 7 7 8 8ALTER procedure myInsertTest 9 9 1010@job_desc varchar(50), 1111转载 2012-12-25 11:03:42 · 1522 阅读 · 0 评论 -
悲催的SqlServer2008
今天没什么事做,本来打算自己写一个“企业人事管理系统”的。上午费了半天的劲,将数据库的逻辑理清了,开始着手在sql2008中创建,到下午1点左右的时候数据库创建成功(包括其中的表及其关联关系),下午2点开始编写vs(2005)程序,本来想节省时间将sql数据库直接连接在vs中生成实体类的,谁知道当测试连接测试成功后,点击确定时却报了一个错(错误的意思是:无法用较低的vs版本加载比vs版本高的sql原创 2012-12-11 15:27:20 · 450 阅读 · 0 评论 -
Application.SetCompatibleTextRenderingDefault(false)
大家在做winform的时候都会发现在Program.cs里面有这样几行代码: Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false);//(注释) Application.Run(new Form1()); 注释:转载 2012-12-07 17:29:05 · 2221 阅读 · 0 评论 -
判断一个数是否为素数
下面这个方法中有些不明白的地方,希望能给一个详细点的思路或者比这个更简洁的方法 static void Main(string[] args) { Console.Write("请输入一个数"); int Num = Convert.ToInt32(Console.ReadLine());//用于接收控制台输入的数字转载 2012-12-07 10:38:37 · 471 阅读 · 0 评论 -
对string类型的分析(堆栈)
在创建一个值类型的时候,只是在栈中开辟一个空间(所谓的栈是指暂时存放值的地方就像是一个客栈,比较方便人们的进出,所以值类型的效率比引用类型的效率要高),而创建引用类型的时候是在栈中存放一个引用来指向堆中一个值。在引用类型当中string类型是比较特殊的,它在有些时候具有值类型的特征。例:string str1="zhangsan";string str2="zhangsan";原创 2012-12-06 14:45:57 · 3608 阅读 · 1 评论 -
项目随笔
用于vs打包时,将mysql免安装版也打进去,调用的一个服务。run.bat中的内容:mysqladmin -u root shutdownmysqld --console run.vbe中的内容:set ws=wscript.createobject("wscript.shell")ws.run "run.bat /start",0 C#代码:parentdi原创 2012-12-04 18:07:15 · 384 阅读 · 0 评论 -
检测TCP端口号是否被占用
string tcpPort = this.txtTCP.Text.Trim(); try { if (tcpPort == "" || tcpPort == null) { this.lblMessage.Text = "";原创 2012-12-05 10:00:12 · 2295 阅读 · 1 评论 -
用于将.cs文件 编译成dll文件
编译dll命令:在cmd命令中,敲入csc /target:library /out:Something.xyz *.cs 其中target:目标类型,library指的是类文件out :指的是输出文件的名称*.cs指的是要编译的cs文件的完整路径。原创 2012-12-04 18:11:17 · 591 阅读 · 0 评论 -
最小化窗体的时候,将窗体放到托盘(NotifyIcon)
if (WindowState == FormWindowState.Minimized) { this.Hide(); ExcelNotifyIcon.ShowBalloonTip(15, "提示", "导出提示!", ToolTipIcon.Info); }pri原创 2012-12-28 17:57:13 · 426 阅读 · 0 评论 -
用于将.cs文件 编译成dll文件(补充),如何配置在cmd中使用csc命令
CSC 命令详解 2011-01-11 16:14:22| 分类:C#| 标签:csc命令详解 |字号大中小 订阅C#环境变量设置步骤(这样之后打开CMD就可以直接输入CSC命令):在桌面右击[我的电脑]->[属性]->[高级]->[环境变量] 在下面的系统变量栏点击“新建” 变量名输入“csc” 变量值输入:“C:\WINDOWS\Microsoft.转载 2012-12-18 14:37:21 · 1690 阅读 · 0 评论 -
C#多线程学习(三) 生产者和消费者
前面说过,每个线程都有自己的资源,但是代码区是共享的,即每个线程都可以执行相同的函数。这可能带来的问题就是几个线程同时执行一个函数,导致数据的混乱,产生不可预料的结果,因此我们必须避免这种情况的发生。C#提供了一个关键字lock,它可以把一段代码定义为互斥段(critical section),互斥段在一个时刻内只允许一个线程进入执行,而其他线程必须等待。在C#中,关键字lock定义如转载 2013-02-21 14:59:23 · 706 阅读 · 0 评论 -
C#多线程学习(一) 多线程的相关概念
什么是进程?当一个程序开始运行时,它就是一个进程,进程包括运行中的程序和程序所使用到的内存和系统资源。而一个进程又是由多个线程所组成的。什么是线程?线程是程序中的一个执行流,每个线程都有自己的专有寄存器(栈指针、程序计数器等),但代码区是共享的,即不同的线程可以执行同样的函数。什么是多线程?多线程是指程序中包含多个执行流,即在一个程序中可以同时运行多个不同的线程来执转载 2013-02-21 14:57:12 · 387 阅读 · 0 评论 -
C#多线程学习(六) 互斥对象
如何控制好多个线程相互之间的联系,不产生冲突和重复,这需要用到互斥对象,即:System.Threading 命名空间中的 Mutex 类。我们可以把Mutex看作一个出租车,乘客看作线程。乘客首先等车,然后上车,最后下车。当一个乘客在车上时,其他乘客就只有等他下车以后才可以上车。而线程与Mutex对象的关系也正是如此,线程使用Mutex.WaitOne()方法等待Mutex对象被释放,如果它转载 2013-02-21 15:01:54 · 460 阅读 · 0 评论 -
C#多线程学习(二) 如何操纵一个线程
下面我们就动手来创建一个线程,使用Thread类创建线程时,只需提供线程入口即可。(线程入口使程序知道该让这个线程干什么事)在C#中,线程入口是通过ThreadStart代理(delegate)来提供的,你可以把ThreadStart理解为一个函数指针,指向线程要执行的函数,当调用Thread.Start()方法后,线程就开始执行ThreadStart所代表或者说指向的函数。打开你转载 2013-02-21 14:58:24 · 476 阅读 · 0 评论 -
名称以无效字符开头。
”名称以无效字符开头.处理http://localhost/webservice/test.aspx是出错“问题解决办法:刚刚学习webservices,很多东西都不懂。写了个最简单的例子,在vs2005下直接按ctrl+F5便可运行,可是拷贝到iis目录下执行却提示出错【名称以无效字符开头。处理资源 'http://localhost/ws/Service.asmx' 时出错。第 1转载 2013-01-28 14:55:40 · 1209 阅读 · 0 评论