- 博客(20)
- 资源 (4)
- 收藏
- 关注
原创 ListView下拉刷新
看了很多ListView下拉刷新效果,都不满意。目前普遍有两种做法,一种是改写外国人的,继承ListView的一种方法,代码非常难读,而且生搬硬套勉强实现效果,效果上来说一不小心就会拉下来,用户体验非常糟糕,也不可能是“新浪微博”和“QQ空间”的效果。另一种是我们自己写的,通过组合控件的形式来完成的,效果上来说还可以,但由于继承的是layout,失去了原生的listview,作为控件封装的话,维护
2013-01-16 14:15:18
3009
1
原创 音乐播放控件
这个windowMeadiaPlayer有几个属性 其中可以获取正在播放的文件总时间,。如this.windowMeadiaPlayer.currentMedia.durationString是获取正在播放的时间 他是返回string类型的我把windowsmediaplaer的重要属性卸载这个上面 你自己看看属性/方法名: 说明: [基本属性] URL:String; 指定媒体位置,本机或网络地址 uiMode:String; 播放器界面模式,可为Full, Mini, None, Invisible
2010-11-29 16:47:00
2593
1
原创 WINFOWS窗体的一些常用美化,省的老是谷歌
<br />去除标题栏:<br />from1.FormBorderStyle = FormBorderStyle.None;<br /> <br />设置窗体透明度:<br />from1.Opacity=0.5 //50%的透明度<br />由此可以控制窗体渐变的效果.<br /> <br />设置窗体的某一种颜色为透明色:<br />from1.TransparencyKey = SystemColors.XXX; //系统色<br />
2010-11-29 12:56:00
1323
原创 C#抽象工厂模式原理及应用
什么是抽象工厂,我们为什么要用抽象工厂?所谓抽象工厂,名字就够抽象的了。但是不用怕,这个本身其实是一套很简单的逻辑。之所以叫工厂,意思就是它可以很方便的给你制造各种对象,而不需要你一个个去New它们~这样它就可以整合大量的类,而通过统一的接口去获得它们的对象。当然,可能你会说:“我很清楚我的程序有几个方法,它们分别用来干什么。我根本不需要把它们放到不同的类里,然后再把这些类整合到什么工厂里。”你当然可以把所有方法体都放在一个类里。比如有这些方法:摘苹果(),削苹果(),吃苹果(),摘梨子(),削梨子(),吃
2010-11-01 17:13:00
1663
1
原创 C# 调用DLL
一直对调用DLL的概念模糊不清,今天先大致扫扫盲。目前所知道的DLL有两种调用方法,一种是作为COM组件,注册后直接引用。注册:regsvr32 +文件路径+文件名 一般WINDOWS系统都自带有一些的COM库,可以让编程者直接使用。但是一些自定义的,尤其是自己封装的,就必须注册一下,让系统认识。注册后,直接引用COM组件就可以了。对于有入口函数的DLL,也可以用直接调用的方法。首先必须将DLL与可执行文件放在一个路径下。然后是调用DLL文件的格式:基本:[DLLImport(“DLL文件”)] 其
2010-08-05 15:48:00
824
原创 C#设置和取消文件夹共享
<br />/// <summary> /// 设置文件夹共享 /// </summary> /// <param name="FolderPath">文件夹路径</param> /// <param name="ShareName">共享名</param> /// <param name="Description">共享注释</param> /// <returns></returns>
2010-07-30 10:21:00
4284
1
原创 C#监视变量的改变!
<br />在实际应用中,很多时候都要做监视机制。最常见的比如一个按钮的Chick方法。在VS2005中,控件的监视已经帮我们定义好了,我们只需要在方法里面写代码就可以。但是如果碰到某个变量,需要监视呢?<br /> <br />首先来初始化一个最简单的变量 <br /> private int myValue=0;<br /><br /> publicint MyValue<br /> {<br /> get { return myValue; }<br />
2010-07-16 19:20:00
14684
3
原创 C#操作XML(基本操作)
<br />通常我们见到的XML文件都是这样的<br /> <br /><?xml version="1.0" ?>-<SQLConfig> 这里保存了SQL的配置信息! <IP>192.168.0.250</IP> <UserID>sa</UserID> <PassWord>sa</PassWord> <DBName>HHFRM</DBName> <BAK_Path>E:/Backup</BAK_Path> </SQLConfig> <br />使用XML的时候,有几样最基本的需要扫盲一下:<br />X
2010-07-09 14:29:00
859
原创 远程数据库备份到本地(本地无数据库)
最近查了一下网上远程备份数据库的方法,好像还是个挺麻烦的事情。但是项目里必须加入这个模块,所以也只有死磕出一个了。最后总结出2个方案:第一种方案,是我个人比较喜欢的方案:首先将所有表加载到DataSet中,用DataSet类的写入XML方法,将所有的信息全部写入到XML中。需要还原的时候,首先去查询加载数据库的内容,然后再读取DataSet,最后用update()就行了。具体代码就不写了,这种方法很简单,用起来也方便。第二种方案,是真正的备份数据库文件。我们都知道,直接远程备份数据库并没有什么问题,但是备份
2010-07-09 11:31:00
11580
原创 窗体间数据传递的几种方法(转至论坛,钢之代码东东的回帖)
<br />使用.NET编写winform程序,比较常见的一种情况就是如何实现Form间的数据交互,下面就简单总结一下常见的几种数据交互方式: <br />(1)修改子窗体的构造函数:简单地说就是通过修改子窗体Form的构造函数,如下所示: public Form2(string Para1, ArrayList List1, TextBox textBox1, Form Form1) { InitializeComponent(); } 上面的例子中,为子窗体Form2添加了4个参数,分别是:字符串Par
2010-07-01 10:39:00
1298
1
原创 C#一些常用类的操作整理
ListBox获取鼠标指向的行号:必须写在鼠标事件里int Index = listBox2.IndexFromPoint(e.Location);批量删除:批量删除原理:由于删掉一行后,删除行下面的每个Item的行号都会减1。所以从上删到下是非常麻烦的。我们可以从下往上删。假设删除行的行号的index,一直删除直到碰到“停止删除”这一项为止。Index= listBox2.IndexFromPoint(e.Location); //即鼠标选中那行的行号for (int i = Index-1; i >=
2010-06-30 21:52:00
1542
原创 DataGridView相关操作
DataGridView选中一行并且置顶:dataGridView1.Rows[i].Selected = true;dataGridView1.FirstDisplayedScrollingRowIndex = i;
2010-06-30 21:27:00
959
原创 C#字符串替换_无视大小写
源代码翻译工具基本完成了,只剩下最后问题:就是对字符串进行替换时,怎么无视原文的大小写。因为C#里的string.Replace是不能无视大小写的。首先想到的是正则表达式,在网上查了下,果然有用正则表达式配合一些逻辑运算,实现无视大小写的字符串替换方法。但是正则表达式的方法用起来很麻烦,实验证明速度也不是最快。而我要说的是用起来最方便,执行速度也是最快的一种。就是使用Microsoft.VisualBasic命名空间里的Strings。首先添加引用Microsoft.VisualBasic.Dll引入命名空
2010-06-28 23:00:00
7222
3
原创 特殊的string
<br />做源代码翻译器的过程中有个小插曲,就是对提取出的字符串集合循环做字符串替换时,怎么也替换不掉。当时都有点郁闷了。调试了一个多小时,终于发现字符串替换的动作完全没有了效果。于是在控制台面板上做实验,发现这样一个现象:<br /> <br /> string str="测试字符串";<br />Console.WriteLine(str);<br />str.replace("测试","Test");<br />Console.WriteLine(str);<br /> <br />很奇怪的发现,打
2010-06-27 01:30:00
643
原创 WINFORM中使用拖曳动作
拖曳动作会让操作方便许多,也使程序更亲切了。C#中几乎所有控件都是支持这个动作的。下面以拖一个文件夹到ListBox中,ListBox列出该文件夹内所有某种类型的文件为例。就像千千静听里,拖一个文件夹到播放列表,可以读出里面所有的音乐文件一样。首先设置ListBox的AllowDrop属性为true。在DragEnter事件中写入以下代码,用于将信息传递给DragDrop。没有这些代码,DragDrop是不会识别动作的 private void listBox1_DragEnter(objec
2010-06-27 00:36:00
1179
原创 最简便的方式使用多线程
在开发的过程中,我们肯定会用到多线程。创建多线程的方法很简单,但是在WINFORM的开发中,你会发现新创的线程是不允许访问界面上的控件的,真是一件非常令人头疼的事情。网上有很多解决方法,方便的不安全,安全的使用起来都非常麻烦。前不久看见一个控件backgroundWorker,可以很好的解决这个问题。首先从VS编辑器组件一栏拖一个backgroundWorker到FROM上。你会发现这个控件的属性很少,最重要的有2个:WorkrReportsProgress 线程是否报告进度意思是这个线程每执行一步操作,
2010-06-13 16:30:00
1237
原创 SQLBulkCopy使用
<br />SQLBulkCopy,用于数据库之间大批量的数据传递。通常用于新,旧数据库之间数据的更新。即使表结构完全不同,也可以通过字段间的对应关系,顺利的将数据导过来。<br /> <br />首先,SQLBulkCopy需要2个连接。分别连接到不同的旧表所在的数据库,新表所在的数据库。如果是同一个数据库,就可以用同一个SqlConnection对象。<br />其次,我们要从旧数据库中,把导出的字段读取出来。用什么读呢?可以用Datatable,也可以用SqlDataReader。因为SqlDataR
2010-06-13 15:47:00
27971
8
原创 SQL实用操作语句
----------------------------------------------------------------------------------------基本的操作-----------------------------------------------------------------------------------------------------------------------------创建数据库 CREATE DATABASE 数据库名删除数据库 drop d
2010-06-13 14:52:00
1032
原创 旁观:Linux之父炮轰C++
<br />【刘江按】以下是我的一点门外之见,做引玉的砖头之用。<br />Dmitry有一点是肯定正确的,语言之争更多的是一种类似宗教信仰上的,所以很难有结果,也没有太多实际意义。这种争论因为出自高手之间,所以还是会透露出很多重要的信息。比如:<br />1. 对于要求性能高的系统编程领域,C++其实未必胜过C,而且事实上,也确实有很多此类项目是选择C作为主要语言的。C的生命力目前仍然毋庸置疑。更多的信息可以读这里。<br />2. C++目前确实处于一种被夹攻的态势,一方面在企业级系统开发(数据密集、业
2010-06-13 08:56:00
898
原创 从SQLBulkCopy到周公的博客
这两天在做一个可以转换数据库的小程序,用于将不同结构的两个数据库之间导数据。之前几乎从没有接触过数据库,只会一些简单的删除插入,这次面对复杂的,截然不同的表结构,一时间竟无从下手。百度谷歌都用上了,最后决定使用SQLBulkCopy类。作为新人,面对一个从没有做过的Demo总是会有种种恐惧,生怕一不小心走了歪路。虽然从学习的角度来说,设计过程中走走歪路是有好处的。但是工作耽误不得,7天的开发时间是不容马虎的。理清表结构之间的对应关系,就用了2天时间。最后确定用SQLBulkCopy,是在周公的博客上看到关于
2010-06-12 15:33:00
1531
ListView下拉刷新例子
2014-06-26
ListView下拉刷新效果
2013-01-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人