05月 28, 2005

这事我一直在提,过了这么四年,总是该写点什么的。

那天高文也说到这事,我觉得她是有道理的。并不是真的没有一点时间写东西,可能只是没有到真正想写的时候吧。

提起笔来,思绪万千,落下笔去,万字千言,还是写不出一句话来。我以前写作文的时候就喜欢用这样的比喻。现在灌水的语言,倒是轻松了许多。

我不知道该如何开始,我的大学,不靠积极,却也不够頺废。就像经常走中间路线的我一样,一直在寻找平衡点。我看《生死平衡》的时候,非常喜欢平衡这个词,所以我宁愿别人说我平衡,而不愿意说我“中庸”……

有段时间,我特别讨厌自己的中间路线,觉得老是在扮演两边不讨好的角色。不过,还好,后来……逐渐的,很多的不快都消逝了,我越来越会开导自己,也越来越善于控制自己的情绪,我会在生活中找到很多乐趣,会为自己的事情找到借口和理由^^

暂时想想,大学四年,考研是肯定要写的。论坛上的生活肯定要写的,朋友是最大的收获,这个是要写的。还有什么呢?学生会,党支部这些并不是很讨我喜欢的活动,也是其中的经历,何况,还有朋友在其中……

还有什么?曾经以为最辉煌的搬家事件运动,最后尴尬的收场,想想当时和韦一笑,老Q一起去学生处递那份《学生搬迁意见调查书》的时候,一度YY自己的慷慨形象,当时在路上,我说,这次大学无悔了……那是我第一次说这样的话吧?……然后后来却不愿意再提起,只是个人的经历罢了!

慢慢写吧,总会要写下来的。以我的习惯,不写则已。某一天,便会一写一大堆的:)

05月 26, 2005
今天中午和VC,卡卡一起吃饭的时候,讨论起以前用计算机的经历……
从WinXP,到Win95,再到Win32,然后说起了很多以前的趣事

想起当年高一在学校机房的时候,学的就是WPS,经常有女生写些很无聊的貌似日记的东西在公用的电脑上,她们还设置一些密码,以为可以起到保密的作用……但是当时的WPS,居然有万能密码这一说,Ctrl+QiuBoJun,就可以破解所有的加密文档,所以,很多文字都是一览无余……
这个小小的技巧还唬了不少人,被当作高手看待

这是我比较早接触计算机……

后来玩游戏的时候,我还是比较好学生的,一周也去一次,偶尔周六去通宵……那时候经常玩的一个游戏是金庸群侠传,这种RPG的游戏最痛苦的事情就保存进度……我每周去一次都会发现进度没有了……而且那儿没软驱,没上网,根本没法拷的。所以,每次去都要从头开始……这样练习的只有我的速度,一次比一次快……先去这儿找什么什么人,再去那儿找什么什么人,都背熟了……但最终也没有能一个通宵打通关……
那时候最大的欲望是自己买台机器,想通宵就通宵,想存进度就存进度^^

后来大学买了机器后,第一件事就是把金庸群侠传再通关了一次……后来在网上找到一些密藉,尽有说什么三个小时通关的……实在是惭愧……我的游戏生涯也就到此为止吧……

卡卡说他小学就摸计算机,因为某个亲戚是计算机厂的,实际上呢是造中华学习机……

我就想起小学的时候的确也是玩过学习机的,当时拿着说明书,还试图用那个自带的Q_Basic语言编一个解题的程序呢……我想想那时候的二元一次方程解鸡兔同笼问题……

我试着把两个程序输进程序代码,然后想让它Print x, y,但啥也没显示出来……

后来我想了半天,给同学演示的时候,自己算出来了,加上了Print x =… , y=…
我说,看结果出来了^^
05月 22, 2005

但是工作还要继续……

先写写烦躁的事情然后继续做东西。这两天真是够累的,崩溃了,连续要通宵三个晚上了。今天还是凌晨三点才从学校回来的。

首先是我们这个毕业晚会,大四的学生,雷厉风行,也是因为平时没什么时间,所以,所有的准备工作都压在这周了。忙得要死,终于忙到了今天,所有的节目都走了一遍,顺序大家也商量着定下来了。

晚上我们审完节目,在导办,我做视频,董和包子在做节目单。其实我的看法一直是,毕业晚会就是让大家玩的,乐呵的,或者说有感觉的。不一定要弄得正规的一台晚会,也不一定要十分专业的演出,但一定要出彩。老昭她们晚上弄了一个竹竿舞,挺不错的,少数民族风格,而且特别惊讶他们三天居然就排出来了一个舞蹈……后来大赞了半天。赞完后就开始BT了,包子说,这个节目应该叫“八个男人,八个女人和八根竹竿的故事”……大家大笑了一通,一帮BT男就开始在节目单上改动了,最后在老昭缺席的情况下把节目单写成了BT版的节目单。

后来老昭过来的时候,看到节目单就晕了……她说,怎么能这样啊,要改!然后她就去改……这边的一帮BT男都在起哄,说,改啥啊,其他都很BT啊……比如翔哥的小品,就是“一个指导员与学生间的缠绵悱恻,欲说还休的故事”……

老昭宿舍的小朋友也跟我们一起BT,这儿不得不提一下小朋友,她是北京人,喜欢看动漫,所以说话极BT,因为她年龄比较小,好像是85年的吧,我们入学时她还未成年,所以大家一直叫她小朋友……

小朋友也在旁边扯,说,怎么能叫这样的名字啊,叫也应该把那“八个男人”去掉,叫“八个女人和八根竹竿的故事”……嗯,不行,还是太SM……-_-bb

后来,老昭一直强调说要改,这边就一直开玩笑的绵着。老昭就发脾气了:当然不行,不能这么猥琐。其他节目都写得好好的,就我参与的两个节目都是这样乱搞的,我都怀疑是不是针对我了!

靠!针对个头……她说的另一个节目的说明里是说的“很煽情,比倪萍还煽,倪萍你丫可以下课了”……然后就争论这个“丫”字是不是应该……这算啥?

我就冲她吼了一句,你别那么敏感,这事就一玩笑,说啥针对谁啊?

她也吼,我就这么敏感。

然后本来在电脑上改节目单的,手在键盘上一拍。把键盘用力的推回去,就气冲冲的回家了……

我们几个在那沉默了半天,不理她,继续工作……靠!这算啥事啊?!……

后来倒没什么,主要是不爽……我还是肯定会处理这件事情,但心里还是不快的!

弄到凌晨两点回来……翻的东门(没想到学校现在的门都变得难翻了……),绕了一大圈子回来的!

回来后还郁闷了一次。傅柳在寝室玩魔兽,我下载一个东西,3M的软件,正好是要用的。刚开始下载,他就开始埋怨了,靠,你在下载啊?我正在打BOSS呢……

我就郁闷了,每次在寝室有这样的声音的时候,我都得带有负罪感似的赶紧把下载的给关了……是他妈的魔兽重要还是别的重要,一天到晚打魔兽,到底是我们影响了魔兽,还是魔兽影响了我们!

后来,我也回了句,靠,我每天在寝室也就待这么一点点时间,就算待这么点时间也只下载这么一点点!不想在寝室包月就是觉得烦躁!……

说话又有点后悔了,接着谁也没说话……然后我就郁闷的在MSN上跟番茄聊天……

我还要做视频呢。毕业的纪念……感觉什么的不重要了……本来是个好事,咋就这么让人心烦呢?

05月 18, 2005

我发现自己很喜欢做一些恢宏而荒诞的梦。

昨天晚上发现自己有点感冒的迹象的,因为头有点晕,说话的鼻音也有点重了。晚上躺下后,就睡得稀里糊涂的,到早上八点半闹钟响的时候,一点想起的感觉都没有。我现在在想,当时是因为头晕呢,还是因为那个梦做得实在太恢宏,太迷离,太让我迷恋了?

不过,反正我就继续躺着,继续做我的梦。

醒来后,我就已经不太记得梦的具体内容了。但在整个上午,我的梦就像一部史诗电影,让我感慨,让我沉醉而不可自拔!里面有宗教,有惊险的追踪,有伦理,有神怪。现在唯一有印象的是一个女子可以变成龙,或者她有别的什么身份,然后遭到追踪……场景在原始森林,非洲部落和我外婆家的那幢房子中变来变去。我印象比较深的是那幢房子,是我儿时住的地方。有两层,后面还有葡萄藤,站在阳台上就可以摘到葡萄。但梦里,我们是在楼上躲避枪弹……

哈哈,整个梦的峰回路转,悬念迭起,引人深思,的确不愿醒啊。却在恍然一醒间全然忘光,真是世界上最大的痛苦。

醒来后,已经是一点多了。我睡了近十二个小时。其中一半时间在做梦。

除了那一个故事外,还有别的很多旁支错节。我记不住情节,只记得住感受。

然后就是呆呆的坐在床上,随手翻起床头那本巨厚的Professional C#!那本书极牛比,我在图书馆预约了一周才到……这是我有史以来,第一次利用学校图书馆的预约书功能!据说是经典,我看到时才发现那本书有多厚……据番茄说是包罗万象!

看了几页后,犹豫了半天要不要去实验室。啊!残酷的现实,我真不想去的,在那儿有时候也无所事事,有事情也不想做,但老师老是希望一切尽在掌握中。他说他要抬眼就能看到所有的学生,想找你做什么事,随时可以找到。老师就是有这样的BT心理,极强的控制欲!

然后我就来了,自己感动一下!居然带病来实验室了!

05月 17, 2005
半岛电视台登陆中国 将与央视CCTV交换新闻画面 
2005年5月16日,半岛电视台台长wadah khanfar访华签订与中方媒体合作事宜,在北京饭店召开新闻会。作者:北京晨报李木易。来源:中青在线

 

半岛电视台登陆中国 将与央视CCTV交换新闻画面 
2005年5月16日,半岛电视台台长wadah khanfar访华签订与中方媒体合作事宜,在北京饭店召开新闻会。作者:北京晨报李木。易来源:中青在线

看新闻,中央电视台将和半岛电视台合作,将交换部分画面。

看来以后我们将有幸看到本拉登的部分录影了。

中国传媒界有这样两种观点:一种是认为半岛电视台打破了由美国主导的西方媒体设置的舆论报道的统一话语,代表了阿拉伯世界的一个声音,而且这个声音是反美的声音;另一种认为半岛电视台就像其座右铭——“意见,及异见”那样,代表了言论自由。请问WadahKhanfar台长,您更喜欢哪一种说法?

  WadahKhanfar:我本人也是一名记者,我们作为记者应该了解,报道一条好的新闻,绝不能跟搞政治和搞经济的人一起玩,这该是最基本的考虑。当然,有的时候有些媒体会在事实报道上有所改变,但是,半岛电视台的成功之路不是模仿西方媒体。

  由此,我们遭到了西方媒体的批评。但是,我们本身不认为我们做的新闻是反美的或是不反美的。半岛电视台没有任何一个政治目标,没有任何一个经济目的。

  我们不反美也不反西方,我们只是给观众一个事实。这是过去的半岛电视台,也是现在的半岛电视台,更是将来的半岛电视台。

  《华夏时报》:请问WadahKhanfar台长,那些神秘的录像带是如何传到您手中的,您又是如何保证这些录像带中的内容是真实的?WadahKhanfar:我要告诉你,这些录像带是通过不同的途径(网络,邮寄等方式)传递到我们这里的,这些东西并不是我们与传送人协商的结果。此外,我再告诉你,收到这些录像带的不止半岛电视台一家媒体,而播不播出是另一个问题,我们选择播出,是为了让观众看到更多的真相。

 

从这两段话看出来,这个台长很牛比啊!说话滴水不漏,而且貌似充满正义。:)

昨日在无人机所506,几个同学做毕设的地方,我们院的大书记满老板大发脾气。

好像是因为他带的那个学生已经很久不见人影了,一直没去实验室。说是实验室,其实506那帮同学挺惨的,就是一个大教室,几张桌子,然后让他们把自己的电脑都搬过去。连校园网都没有接上,还是自己用Hub连的小局域网。

言归正传,说满老板发彪之事,他当即就打这同学的电话,然后就在当场在电话里破口大骂,语出惊人,我没有看到现场,但据说三字经是出现了的。

说:你他妈的想想不毕业了!工作什么的搞搞就行了,毕不了业你谈什么都是扯淡!

如是而己……记录下来

因为刚刚在说自我批评与反省,现在就来写这篇关于自我批评与忏悔的文章。

其实一直想写的,但一直也只是存留在脑袋里的只言片语和思维片断,觉得行文不太好。不过,我暂且当这里真的是我牛比的草稿本,即使只有一句话,也可以写下来!

党内民主生活会,肯定是会要有自我批评的。我不知道这一招是谁创造性发明的,是不是和西方基督教里的忏悔相应。以前,我们支部一学期还有一两次批评与自我批评的,十来个人相互扯淡,越扯越淡……

-嗯,我的缺点就是成绩不好……当这话是从班上第三名口中传来时,是不是想打人呢?

-嗯,我的缺点是大学好堕落,自我批评一下……FT,这样的批评好像几乎每个人都有

-嗯,我的缺点是太懒了,经常迟到……共性!

-嗯,我的缺点是我有时候会逃课……分明是一个逃得很少的人,一节不逃可能吗?

……

诸如此类,有价值的一点不谈,偶尔谈几个可能有价值的,也是如下……

-嗯,XXX同学的缺点就是他对同学太好了,原则性不强……

-嗯,XXX同学工作方法有点不当……

……

这样的民主生活会,每次都听得我想把这些人的嘴巴撕开。当然,有时候我也会这样的讲,我讲得很诚恳,我也迟到早退,我也逃课,我的成绩不好这倒是公认无所谓,不过,我说,说了也没用。年年如是说,年年如是做。到后来,人越来越多,不认识的人越来越多,批评起来就更没什么意义了。

这样的民主生活会,每次都听得我想把这些人的嘴巴撕开。当然,有时候我也会这样的讲,我讲得很诚恳,我也迟到早退,我也逃课,我的成绩不好这倒是公认无所谓,不过,我说,说了也没用。年年如是说,年年如是做。到后来,人越来越多,不认识的人越来越多,批评起来就更没什么意义了。

有几次,我说了自己的观点:

1.这样的批评毫无意义,从来没见哪个改正过……而且对于我来说,迟到逃课这样的事情也没有真正要改的必要!

2. 就是我想到了忏悔,西方的忏悔是建立在一种信仰和绝对信任的基础上的,因为神父是一位德高望重的人物,所以,有信仰的人们愿意把自己的倚托放在这位自称代表了神的人物那。即使没有获得帮助,倾诉也是有快乐的。

而我们的党内有这样的氛围吗?如果说最开始十多人,同志般的情感与神圣的使命感让他们有那种信仰的,宗教般的热忱,这点就无以为疑了。那个年代里,每个人都是仇大苦深的样子,有一个神圣耀眼的目标和一种奋斗的激情。想想看,改造一个世界的激情,现在还可能有吗?

我还是倾向于认为每个人其实都是有剖析自己和忏悔的欲望的。老憋在心里也难受得慌……所以,在那种的激情澎湃的岁月里,面对着生死兄弟,大家可能会愿意真正自我批评的。

但现在呢?一个支部的支部书记不足以承载足够的信任。而其他成员,没有战争时期的“革命的友谊”,很难有真正的互信!XXX做事很没章法,XXX为人很圆滑,XXX有点投机,甚至XXXRP很差。这样的话,谁也不会说,要么憋在心里,要么背后说说闲话。当面倒是一团和气了,批评啊,自我批评啊,一切都显得无足轻重的。学习啦,成绩啦,工作啦,一切都是表面的。

不信任是造成整个团体沟通与交流的障碍。也许彼此可以嬉闹玩笑,却不一定愿意把自己的真实暴露给对方,甚至有时候自己都不愿意面对,当然,也有可能自己从来不想这些的。所以,即便是性格上的弱点,有时候也不愿意分说,更不用说内心深处的忏悔与自剖了。

西方的忏悔我不知道现在还有没有,但我很记得小时候看的一本书《牛虻》,最初的主人公是被神父出卖的。自己的信任最终成为敌人利用的弱点,这点不得不说是种悲哀。而以前的我,曾经做过的最蠢的事情也是深刻的剖析自己,把自己的某一个不光采的一面写在了自我批评的纸上,却被班主任拿去和家长沟通,让我深感郁闷。因为他们不了解,我把有些东西写在纸上,并不是为了他们用他们的方式来教育我,而是希望他们能够了解这些。不说排解苦闷,至少也别给我添堵啊!:)

所以有时候,自我剖析的时候有点谨慎的,生怕自己得意忘形,拿着自我批评的旗职,满世界的挥洒自己的信任了!

自我批评一下。

昨天连续两个人说我懒,我必须要反省一下自己了。:)当然,其实我的反省一般都带有自我辩解的味道,同党内的自我批评一样。这是我的性格弱点^^!

最近算是三座大山压头,三座其实都不是很繁重,但又都是很麻烦和费时间。一是我们的毕设,现在进入不太想做的阶段,而老师要我天天待在实验室里面,早起,晚回……实在是极不爽。即使待在实验室里,有时候也没心情做,呆坐而己。一页一页的翻那些技术文档,郁闷到死。二是那个精准的项目,这个项目可谓是牛比,峰回路转,百转千回。本来可以在一个月内搞定的项目,却是从上学期末谈需求开始,从3月25日交付,拖到4月25日交付,又在4月底发生了一些其他事物,把搞技术路线的我们卷入一场商业战,把项目三方拖得精疲不堪……最后重签合同到这个月的25号测试验收。三是这个周末的毕业晚会……昨天说这个的时候被高文所B4……哎呀,其实工作量最大的就是这个,因为我大概要做十段左右的视频来串场,现在照片还没扫描,视频还没思路,还有点无从下手的感觉……

先写这么多,待会再发文到牛比的草稿本里去。其实一直还是想写点东西的,也想想一些事情。只是最近发现都头脑迟钝了,上学期考研的时候都还经常在纸上大发感言的,最近却啥也不想想,啥也不想说。

累啊。思考快乐,思考也特累。要思考出东西来的话,更是累上加累。

最近的确很懒,我的衣服已经一堆没洗了,今天看来要洗衣服了……

05月 16, 2005


 
—————————————————————  
 
1.>抽象类与接口在设计时各有什么好处?  
接口不能执行任何的方法,而抽象类可以。    
类可以执行许多接口,但只有一个父类。  这个也有人说用接口可以实现多重继承。  
接口不是类分级结构的一部分。而没有联系的类可以执行相同的接口。  
 
具体说说:  
   接口是对象属性和方法的描述(但不包括他们具体实现),比如Int32类型实现了IConvertible接口,就说明Int32具有IConvertible接口所描述的ToDouble()方法。但IConvertible并没有给出实现ToDouble()的内容,需要由Int32类型自己实现。    
接口用于实现多态。比如Int32,Int64和Single类型都实现了IConvertible借口,那么就说明他们一定都具有ToDouble()方法。所以,定义一个变量是IConvertible类型:    
IConvertible  c;    
然后,无论是给c赋任何实现IConvertible类型的变量,我都能够保证,c至少有一个ToDouble()方法可用,而不用关心c具体是什么类型的变量。如    
int  i  =  3;        //Int32    
long  j  =  6L;    //Int64    
float  k  =  4F;  //Single    
 
则    
c  =  i;    
c.ToDouble();    
 
c  =  j;    
c.ToDouble();    
 
c  =  k;    
c.ToDouble();    
都不会发生错误。    
 
实现接口的类可以显式实现该接口的成员。当显式实现某成员时,不能通过类实例访问该成员,而只能通过该接口的实例访问该成员。  
接口的应用大多数是在Design  Pattern时才用到。    
 
 
抽象类,从多个对象中抽出来的“共性”,而他的后代,既有共性、又有特性。例如:“图形”是抽象的,没有形状,由点线组成;正方形、圆形是他的派生,可以是对象。  
 
 
2.静态方法与实例方法的区别  
静态方法方法是属于类的方法,实例方法是属于由类的对象的方法。  
 
比如:  
class  A  
{  
   public  static  void  F1()  {};  
   public  void  F2()  {};  
}  
 
你可以这样用F1    A.F1();  但是A.F2()就会出错。  
可以这样用F2,    
A  a  =  new  A();    a.F2();    但是a.F1()也会出错。  
 
(over)  
 
—————————————————————  
 
个人认为,抽象类与接口的作用从本质上讲是一样的,就是规定一些共同的方法。只要某个类是继承自某个抽象类的或实现了某个接口,则其必须完全实现该抽象类或接口中的所有方法。  
之所有有两者共存,是因为只支持单一类继承,但可以实现多个接口来实现类似于多重继承的功能。  
—————————————————————  
 
mark,study  
—————————————————————  
 
收藏  
—————————————————————  
 
最基本的区别是:  
 
接口是一种协议,一种约定,一旦发布,就不能更改,只能通过定义新接口来增加功能。而且接口内定义的成员不能在接口中实现。接口中的成员都是“抽象”的。  
 
抽象类可以部分实现成员。而且随意增加新成员,这在一个发布的已被使用  
接口中是不能的。  
 
当然,如果你想把项目从头再来一遍,什么都可改变。可微软发布的  .Net  中的大量接口估计永远也不会改了。这就是接口。而  .Net  的新版本可以对某些类包括抽象类进行一些增强,却不会影响你原来的代码在新版本上的运行。而接口的更改将可能你导致重新编写代码。  
—————————————————————  
 
欢迎高手。  
http://expert.csdn.net/Expert/topic/1146/1146709.xml?temp=.4294245  
 
—————————————————————  
 
为什么静态的方法不能调用本类里面的非静态方法呢???  
—————————————————————  
 
1。抽象类更侧重于归纳同一父类的子类的共同特征,如果属性,方法;接口更侧重于定义任意的类有没有相同语义的方法。  
2。实例的方法可以看作是某个对象的方法,而这个对象是属于你的应用程序的;静态方法你可以看作是你的应用程序的一个方法,再把镜头拉远一点,把你的应用程序看作是一个对象的话,那么静态方法就是应用程序这个实例的一个方法。至于为什么要有静态方法,我想,当一个类的方法在执行时如果不涉及到某些具体需要实例化的数据时,都可以归为静态方法。  
—————————————————————  
 
哈哈哈  
这个帖子值得收藏  
我得好好想想  
—————————————————————  
 
班兄的才能和热情是C#版各兄弟有目共睹的,不是一两个人的话就可以颠倒视听的!我相信群众的眼睛都十分雪亮。  
再说我觉得abiao也是对事不对人吧,“疑义相与析”时难免有言语的摩擦,最后能把问题搞清楚才是我们C#版兄弟们所追求的真谛,不是吗?  
绝对赞成"C#版只有我们自已才能珍惜。努力吧!兄弟们!"!  
—————————————————————  
 
人民群众的眼睛是雪亮的!  
呵呵…  
收藏  
—————————————————————  
 
studying~~  
—————————————————————  
 
这个贴子是我进C#以来认为比较有价值的贴子中的一篇,前段时间那个"必败"的家伙惹的我心烦,现在总算是看到本版有了很好的讨论问题的气氛了:)  
 
本贴虽然楼主认为有点幼稚,不过我觉得,有时候看似简单的问题,却很值得深入研究,希望以后多出这种贴子…  
 
另外建议置顶…  
—————————————————————  
 
gz  
—————————————————————  
 
呵呵,文人相轻  
—————————————————————  
 
为什么总是有人,想吵架呢,奇怪啊  
—————————————————————  
 
不错,值得收藏。  
—————————————————————  
 
接口可以有静态成员、嵌套类型、抽象、虚拟成员、属性和事件。实现接口的任何类都必须提供接口中所声明的抽象成员的定义。接口可以要求任何实现类必须实现一个或多个其他接口。  
 
对接口有以下限制:    
 
接口可以用任何可访问性来声明,但接口成员必须全都具有公共可访问性。    
不能向成员或接口自身附加安全性权限。    
接口可以定义类构造函数,但不能定义实例构造函数。    
每种语言都必须为需要成员的接口映射一个实现提供规则,因为不只一个接口可以用相同的签名声明成员,且这些成员可以有单独的实现。  
 
—————————————————————  
 
楼上好好听高手讲课~~!  
—————————————————————  
 
为什么会有接口和抽象类?

05月 14, 2005

利用微软网格控件进行编辑输入
(作者:王莉梅 2001年01月18日 16:51)

  Visual Basic中提供了许多标准控件和定制控件,每一个控件都可以提供一组特殊的用户界面和编程能力。充分利用每一个控件的特性和方法,可以使编程工作更加容易、简单。

微软网格控件MSFlexGrid是个定制控件。使用微软网格控件,可以按行列顺序显示正文、数字和图片,就象电子表格一样。网格的高度、宽度和其它特性都可以进行调整,而且网格的行和列可以单个地或成组地进行操作。MSFlexGrid控件对包含在内的单元内容可进行分类、合并以及格式化,并且可以与数据库控件相绑定。MSFlexGrid控件具有50多种属性,比其它网格控件功能更强大,灵活性更强。

  但是MSFlexGrid控件同其它Grid网格控件一样,用户不能编辑网格单元中的内容,在要求对其内容进行修改时,这可能是一个缺陷。虽然可以对DBGrid控件进行编程完成编辑的功能,但其功能不如MSFlexGrid强大。当在录入工作量比较大时,如果利用MSFlexGrid进行输入,代替Text或其它控件,从而避免了界面的反复刷新和不断地操作按钮,录入速度和效率会得以大大提高。

  在应用程序中使用 MSFlexGrid 之前,应先将 MSFlxGrd.ocx 文件添加到工程中。

实现编辑网格单元的方案
  为了仅仅要求实现能够对网格单元进行输入,可以在MSFlexGrid的KeyPress事件中加入以下代码,但是修改编辑输入后的内容还十分困难。

  Sub MSFLexGrid1_KeyPress(KeyAscii As Integer)

  MSFlexGrid1.Text=MSFlexGrid1.Text & Chr$(KeyAscii)

  End Sub

  另外一种方法是文本框和网格相结合,用户编辑操作文本框中的内容,操作完后移至网格单元中。在这个过程中,应该实现以下几个功能:

  (1)文本框能准确定位,与待编辑网格单元相重合(2)平时文本框不显示,当进行编辑操作时显示(3)在输入完一行后能自动判断并加一新行(4)按回车键确认并自动到下一列(5)双击网格单元可显示文本框进行编辑(6)文本框消失后,把文本框内容移到网格单元中。

编辑网格单元的具体实现
  建立一个新工程,在Form1上添加控件 Text1和MSFlexGrid1,根据表1设置其属性。

  首先要实现文本框显示的时候,能与网格单元准确重合。ShowTextBox子例程便可以实现此功能。在此考虑网格本身的Top和Left值、网格单元的高度和宽度、分隔网格单元的边框的宽度。

  Sub ShowTextBox()

    With MSFlexGrid1

     ‘隐藏文本框,设置高度和宽度

     Text1.Visible = False

     Text1.Height = .RowHeight(.Row) – (Screen.TwipsPerPixelY) * 2

     Text1.Width = .ColWidth(.Col)

    ’ 计算文本框左坐标

     Text1.Left = .CellLeft + .Left

     Text1.Top = .CellTop + .Top

     Text1.Visible = True

     Text1.SetFocus

   End With

  End Sub

  当有按键触发网格单元时,则把单元中的内容保存到文本框中,然后显示文本框等待编辑。

  Private Sub MSFlexGrid1_KeyPress(KeyAscii As Integer)

  Dim char As String

  If KeyAscii = 13 Then

   Text1.Text = MSFlexGrid1.Text

     Text1.SelStart = Len(Text1.Text)

     Else

      char = Chr$(KeyAscii)

      Text1.Text = char

      Text1.SelStart = 1

     End If

     ShowTextBox

     KeyAscii = 0

  End Sub

  当焦点离开一个网格单元时,先保存文本框中的内容到网格单元,然后检测离开单元是否在最大行第一列(可自己设第几列),如果是自动加一行。

  Private Sub MSFlexGrid1_LeaveCell()

    MSFlexGrid1.Text = Text1.Text

  If MSFlexGrid1.Col = 0 And MSFlexGrid1.Row <> 0 And _

   MSFlexGrid1.Row = MSFlexGrid1.Rows – 1 And MSFlexGrid1.Text <> "" Then

     MSFlexGrid1.Rows = MSFlexGrid1.Rows + 1

   End If

  End Sub

    为了响应鼠标动作,添加以下代码。

  Private Sub MSFlexGrid1_MouseDown(Button As Integer, Shift As Integer, _

                   x As Single, y As Single)

   Text1.Visible = False

  End Sub

    当网格单元发生变化时,取网格单元内容到文本框,等待编辑,从而保证文本框中的内容最新。

  Private Sub MSFlexGrid1_RowColChange()

   Text1.Text = MSFlexGrid1.Text

  End Sub

  双击网格单元可以对网格单元中内容进行编辑。

  Private Sub MSFlexGrid1_DblClick()

   If MSFlexGrid1.Row > 0 And MSFlexGrid1.Col = 0 Then MSFlexGrid1_KeyPress 13

  End Sub

  文本框起输入编辑框的作用,模拟网格单元,输入到文本框的内容,经过处理送到网格中,当输入完后按回车键可以自动到下一列,若为最后一列,跳转到下一行的第一列等待输入。

  Private Sub Text1_KeyPress(KeyAscii As Integer)

    If KeyAscii = 13 Then

      MSFlexGrid1.Text = Text1.Text

      Text1.Visible = False

      MSFlexGrid1.SetFocus

      If MSFlexGrid1.Col < (MSFlexGrid1.Cols – 1) Then

       MSFlexGrid1.Col = MSFlexGrid1.Col + 1

      ElseIf MSFlexGrid1.Row < MSFlexGrid1.Rows – 1 Then

         MSFlexGrid1.Row = MSFlexGrid1.Row + 1

         MSFlexGrid1.Col = 0

      End If

      KeyAscii = 0

     End If

  End Sub

以上程序在VB6.0 (中文企业版)下运行通过,实现了对MSFlexGrid网格单元的输入编辑。当然还可以添加一些代码完成对一些击键的响应,如按Tab自动到下一列,按Ese键取消输入等,这都很容易做到,在此不再叙述。如果您使用VB6.0 (中文企业版),还可以用MSHFlexGrid控件来完成编辑输入的功能。您可以在此下载程序清单。

作者Blog:http://blog.csdn.net/coolstar/