C#之旅

           走自己的路,让别人打的去吧。
随笔 - 66, 文章 - 0, 评论 - 117, 引用 - 2
数据加载中……

2008年2月25日

原创长篇小说《惊骇》作者C#之旅,版权所有,转帖请注明出处!第一章 等待

 

  

第一章 等待

1

凌晨三点,正是人们沉睡的时候,在海龙市白云区郊外的一个小山坡上,风嗖嗖的吹着,透出一丝丝的寒意。夜空中,由于现代工业造成的环境污染,已使我们好像忘记了还有月亮和星辰的存在,一切都笼罩在黑暗中。只有山坡下不远处那座已失修多年的老桥,在桥头那盏昏暗的灯光下,还显示着它的沧桑、宁静和恒古。

方知明扭头看了看自己的队友,这两个年轻人,他们静静的爬在山坡上,戴着红外线夜视镜,像入定了一般,无法看出他们是否因为长时间的蹲守而产生疲惫。

方知明轻轻的推了推爬在自己身边的张小兵,轻轻的问道:“不会睡着了吧?”

张小兵取下夜视镜,左右扭了扭自己的酸痛的脖子, “方队,没有你的命令,谁敢睡觉啊,你说说,这帮龟孙子,说好了是一点来,怎么到三点还没有来?不会不来了吧?”

方知明说:“这个谁知道呢,有一点希望我们就要坚持下去啊,就一个字,死等!”

张小兵不满的嘟囔着:“哥,‘死等’是两个字,不是一个字!”。然后他又揉了揉眼睛,说:“盯了我一宿,眼睛疼,明天眼肯定肿,我还约了女朋友看电影呢,只怕要泡汤!”

爬在张小兵身边的徐霞嘿嘿一笑:“就你呀,才多大点,就学人家谈恋爱,你知道什么叫恋爱吗?”

张小兵撇了撇嘴:“就你懂,你懂那么多,怎么到现在还没有嫁出去!”

徐霞脸一红,虽然没有人能看见,但多少有点生气,“小屁孩,你懂什么?追我的人可多了,只是姐姐我没有看上眼的,谁象你,见到漂亮女孩子就象跟屁虫一样!”

张小兵刚要回敬一句,方知明忽然看到桥头有两个人影在晃动,对着张小兵和徐霞轻轻的嘘了一声,二人赶紧静了下来。方知明戴上夜视镜,看到桥头有两个人在鬼鬼祟祟的左右张望。方知明示意大家把枪上膛,用对讲机说:“目标已出现,王伟,包抄,立即行动!”,随即耳机中传来清晰的一声“收到!”

三个人慢慢的从地上爬起来,猫着腰向桥头靠拢。快要到桥头时,在桥上的人好像感觉不对,向桥的另一头跌跌撞撞的跑去。

桥的另一头,三个人挡住了他们的去路。这两个人又掉头往回跑。

方知明喊道:“兄弟,往哪里走?你们已经被包围了。”

桥上的两个人看了看两边,互相对视了一下,一副落寞的表情,不情愿的跪了下来,缓缓的举起了双手。

2

星期五的下午,叮铃铃,下课铃响了。

白云区红旗小学三年级一班的王晓亮按奈不住心头的兴奋,飞快的合上书本,胡乱的塞进书包,几步就窜到了教室门口。刚一出门,隔壁班的张小龙就把他堵住在了门口。

王晓亮:“干嘛?好狗不挡道,我爸爸妈妈去外婆家了,我要趁他们不在家,赶紧回去看我的火影忍者!”

比王晓亮高出半头的张小龙不屑的一笑:“你真是长不大,就知道看漫画书,有胆明天跟我一起去阳台山上的神庙里去玩,听说那里很恐怖,你们班和我们班的同学都不敢去!”

王晓亮没有搭理张小龙,背着书包,侧着身子从张小龙走了过去。

张小龙轻蔑的对着王晓亮的背影挑衅着:“胆小鬼!怪不得你们班的同学都叫你‘靓姑娘’!”然后又大声的喊着:“靓姑娘,你回去看你的火影忍者吧!”

王晓亮停了下来,扭过头,一步一步的逼近张小龙:“谁说我叫‘靓姑娘’?你才是‘小龙女’呢!你说,去哪里?谁不敢去谁就是胆小鬼!”

张小龙扳住王晓亮的肩膀,把自己的耳朵凑在了王晓亮的耳朵上,轻声的说:“明天星期六,我们不上课,早上九点一起去神庙,你在家等我。拉勾,谁不去谁就是胆小鬼!记住,别告诉你爸你妈!”

王晓亮撇了撇嘴,“他们都不在家,放心吧,我不会说的!”

带着一副不服气的表情,王晓亮和张小龙拉了拉勾,然后分头回家了。

3

叶平和黄山顺在阳台山腰的一片空地上,并排躺着,躺在一片杂乱的报纸上,周围散落着满地的烟蒂和空啤酒瓶。

叶平,不算高,不算矮,长的很普通,普通的即使让人看上一年以后还回忆不出他的模样。上身穿着一件花格子衬衣,最上面的两个扣子没有扣上,下身穿一条牛仔裤,在膝盖上下位置,有几个因为赶时髦而故意用匕首扎破的不规则的破洞,破洞边沿还有几根线头耷拉着,正如他的头发一样乱糟糟。他眼睛直勾勾的盯着天空,眼神也空洞无比,不知道在思索着什么。

黄山顺,个头也不算高,不算矮,但比叶平稍“长”一点,为什么说“长”一点而不说高一点,因为他们在躺着。他穿着黑色的西服,西装革履,头发虽然几天没洗,但仍然用口水抿的油光发亮,或许,这光亮中大部分的功劳不是口水,而是刚吃的那只烧鸡。整体看来,长的还算英俊,除了眼睛有点小,可以称的上是风流倜傥,一表人才。他躺着,眼睛却斜看着叶平牛仔裤上的破洞,一副深思专注的模样。

黄山顺:“老三,你小子学啥不好?好好的裤子被你扎几个洞!”

叶平眼睛还是盯着天空,一动不动,懒懒的伸了伸胳膊,曲起了两条腿,说:“这叫流行,以前流行过,后来不流行了,现在又流行了,人他妈真怪,啥事情都会变来变去,计划不如变化啊,我老爸给我起名叫叶平,是想我一生荣华富贵,平平安安,可现在却他妈的一点不平,整天东躲西藏!好不容易才搞到那么些金项链,老大刚一得手,警察就出现了,好像算准了一样,要不是我俩跑的快,也早玩完了。”然后又叹息了一声,“可惜啊,东西都丢在路上了,只顾着逃命了,咳!”

黄山顺显然比叶平喜欢动脑筋,或许说是自己觉得天生聪明,他抬头看了看颓废的叶平,淡淡的说:“别灰心,这次老大被逮住了,东西也没有了,可还有我们两个啊,俗话说的好啊,留得青山在,不怕没柴烧,以后只要我们谋定而动,总有成功的机会。”

黄山顺停了一下,接着说:“你知道我为什么选择躲在这里吗?就因为我的名字,山顺,躲在山里才能顺啊!只要我们熬过了这几天,我们再做几单。现在,睡吧,我有预感,好运就要来了!等着吧!”说完,慢慢的闭上眼睛,开始养神了。

叶平这时才扭头看了看黄山顺,说:“我们三人中也就你最聪明,点子多,得,听你的,我和周公有个约会!”然后翻了个身子,不时就听到了轰隆隆的打鼾声。

4

“星期天的早晨我多么快乐,带着月票上了汽车……”张小龙刚唱了两句,就被王晓亮不耐烦的打断了,“什么星期天啊?今天是星期六!”

张小龙看了看王晓亮,嘻嘻一笑,“管它星期几呢?反正不上课,我骗我妈妈说我去看外婆了,她还夸我孝顺,给了我一百块钱让我去买点东西给外婆带去,这不,全在这里了!哈哈!够我们今天一天吃的了!”然后得意的从背包里掏出一个纸袋子,里边露出了各式各样的水果、饮料,还有鸡腿汉堡、黄油面包等等。

“小龙哥,你想的真周到,我都不知道要带吃的!”不知不觉中,晓亮对小龙的称呼后面多了一个哥字。

王晓亮敬佩的样子让张小龙觉得自己很伟大,把小肚子挺的老高,带头向前疯跑。

一路说笑着,不觉来到了阳台山脚下,小龙看着满头大汗的晓亮,说:“真没用!”,还没有等晓亮开口,就又神秘的说:“听说那个神庙里的神像会吃东西,你把苹果塞进他的嘴里,能听到神像咔嚓咔嚓的声音,一会苹果就被吃完了!”

晓亮心里一惊,但仍作坚强状,“我才不怕呢,走,我们上山看看!”

两个人开始了爬山比赛,都不甘落后,向着山顶的神庙跑去。树林越来越密,山路越来越堵。

晓亮抬眼一看,已是“太阳当空照,花儿对我笑”的正午十分,肚子开始呱呱叫,就对小龙说:“小龙哥,你看,那边有块空地,我们休息下吧,累死了,快把你的东西给我吃点!”

其实小龙早饿了,刚出来时的兴奋劲被这一阵子爬山的辛苦磨去了百分之七十三,等晓亮先说出饿来,感觉自己又胜晓亮一筹。既然当了哥,就要比小弟能抗饿,这也算是小胜。这么一想,小龙和晓亮就高兴的到空地处准备就餐了。

食色,性也。圣人概莫能外,而况孩童乎?

5

叶平和黄山顺睡的正香,几天的躲避生涯让他们睡的很香。

有人说,劳累了一天的劳动人民,回家倒头就睡,是一种幸福,那么我说,在不断东躲西藏的日子里,那些逃避法律追究的犯罪分子,不回家,不敢回家,找个地方,随便一个地方,倒头就睡,就更是一种幸福。

叶平做梦了,梦见捡到了一大叠的钱,是人民币,数了数,数了整夜,还没有数完。

黄山顺也做梦了,梦见捡到了一大叠钱,是美金,数了数,数了整夜,也没有数完。

这些钱,这么多,怎么花,他们思索着,但是,朦胧中,忽然有两个小孩,对着这些钱,不顾一切的脱下裤子,撒尿,把这些钱都给尿湿了,钱没了,刚到手的钱没有了。

二人都从梦中惊醒,揉了揉眼睛,不约而同的相互掐了掐胳膊,疼,不是梦,但,真的有两个小孩在边上撒尿。

叶平脸上见鬼的表情让人看的难受,看到他脸上这种见鬼的表情,你肯定认为你见到了鬼。

谋定而动的黄山顺,初始的惊诈在瞬间变成了惊喜,做梦梦到钱,又梦到小孩,莫非,小孩就是钱?

其实,在小偷的世界里,在已经被逼无奈,逼上阳台山的小偷的世界里,有时候会闪现出梁山好汉的英雄形象。可是,同样落草为寇,为何世人的评价却有那么大的差距呢?

小孩是钱?钱是小孩?

后者比较好解释,钱就是小孩,你就是钱它爹,你要掌握自己的小孩,小孩越多越好,小孩越多,势力越大,你就可以支配和养活更多的小孩,连偏僻的农村都知道。

前者怎么解释?小孩是钱?一向长叹“既生瑜,何生顺”的黄山顺给出了最完美的解释。

那就是五个字“绑架!”

五个字?叶平疑惑了,明明是两个字,黄山顺笑了,笑的很高深,让我们不仅又想起了三个字“勒索钱!”

第一章完了,真的完了,接连发生的故事,我们从中央电视台十二套节目中时常可以看到。我想说的是,这两个被绑架的小孩,都知道他们的名字,就是我们的小龙哥和晓亮,而开篇方知明队长,确切来说是白云区公安分局刑警大队三中队的福大队长,及其队友在不断的等候中,抓捕的两个黑影,正是叶平和黄山顺。

为什么他们又失败了,足智多谋,谋定而动的黄山顺又给出了最完美的解释:一个姓叶,一个姓黄,叶(Yeah),黄了。笔者特别注明,此处虽然使用了英文Yeah,并不表示鄙人不爱国,正因为鄙人是如此的爱国,所以,英语四级考试一直没有通过。

posted @ 2008-02-25 23:10 c#之旅 阅读(72) | 评论 (1)编辑

2008年2月16日

又是一年春来到,祝大家有个好的开始。

祝福大家一年顺利,工作顺利,平安。

posted @ 2008-02-16 12:13 c#之旅 阅读(17) | 评论 (0)编辑

2008年2月11日

挺好看的小说《商业三国》

http://www.cnblogs.com/Files/CShapWinForms/商业三国.rar


有兴趣了可以看下!

posted @ 2008-02-11 16:48 c#之旅 阅读(171) | 评论 (1)编辑

2008年2月3日

新年快到了,祝大家新年快乐!

又是一年春来到,祝福大家在新的一年里能取得更好的成绩!
家庭幸福,万事如意!

posted @ 2008-02-03 19:15 c#之旅 阅读(13) | 评论 (0)编辑

2007年11月18日

闲着也是闲着,写点字传上来玩玩!

posted @ 2007-11-18 16:05 c#之旅 阅读(170) | 评论 (6)编辑

2007年10月15日

这些天工作太忙了,一点时间都没有了

如果天天都是这样忙的话,活着真是没有意思,一点自己的时间都没有了,咳,为什么啊。
看起来还是要再努力了啊,无穷无尽的工作,啥时候是个尽头呢?
发泄下。

posted @ 2007-10-15 21:56 c#之旅 阅读(38) | 评论 (1)编辑

2007年10月2日

ASPxNewsControl 使用备忘

To bind the control to a data source, use its ASPxDataWebControl.DataSourceID property. To indicate the way the control's items are populated from the data source, use the following properties:

  • DateField - specifies the data source field which provides item dates;
  • HeaderTextField - specifies the data source field which provides a content to item headers;
  • ImageUrlField - specifies the data source field which provides the URLs of item images;
  • NavigateUrlField - specifies the data source field which provides item URLs;
  • TextField - specifies the data source field which contains item descriptions.

在NavigateUrilField 中设置一个编号,一般是指新闻的ID编号。
在NavigateUrlFormatString中设置show.aspx?bianhao={0},可以链接到制定的地方。
在ItemSettings中,设置ShowHeaderAsLink让标题出现链接,Target设置目标框架。

posted @ 2007-10-02 13:58 c#之旅 阅读(159) | 评论 (1)编辑

2007年9月25日

研究了一下午,终于找到了把框架中的立体分割线变成平面的方法了(去除三维效果)

网上找了很多资料,都不行,最后经过摸索,才发现解决方法:
<frameset cols="80,*" framespacing="44" frameborder="yes" border="0" bordercolor="#3399FF">
  <frame src="UntitledFrame-6.html" name="leftFrame" scrolling="No" frameborder="0" noresize="noresize" id="leftFrame" title="leftFrame" />
  <frame src="Untitled-3.html" name="mainFrame" frameborder="0" id="mainFrame" title="mainFrame" />
</frameset>

其实border属性等于多少都没有啥关系,刚开始一直老研究他,搞的浪费了不是八月十五的好时光。
后来才发现,原来重要的就是framespacing属性,就是你要的分隔条的宽度,在frameset里边,应当设置frameborder="yes",表示要显示中间的分割条,但此时显示出来的条子,是立体的,非常老土,跟网页是无法协调的,怎么办呢?想办法。把frame标签中再加入frameborder="0",如果是分成两个的话,两个都加。我靠!居然这样就可以了,浪费了我一个下午的时间,还在拼命找什么css来控制他。说也奇怪,一个frameborder属性,有时候设置成yes,有时候设置成数字,还表达不同的意思,这个属性设计的也太龌龊了,但能用就好。或许有朋友跟我一样焦急处理这个问题,写下来,自己备忘,有需要的就不用那么麻烦了。

posted @ 2007-09-25 18:07 c#之旅 阅读(325) | 评论 (3)编辑

细表格备忘

<table width="457" height="286" border="0" cellpadding="0" cellspacing="1" bgcolor="#000000">
   <tr>
     <td width="308" bgcolor="#FFFFFF">123</td>
     <td width="308" bgcolor="#FFFFFF">123</td>
     <td width="308" bgcolor="#FFFFFF">123</td>
   </tr>
   <tr>
     <td bgcolor="#FFFFFF">213</td>
     <td bgcolor="#FFFFFF">123</td>
     <td bgcolor="#FFFFFF">123</td>
   </tr>
 </table>
建一表格,设置 cellspacing =1,背景颜色为需要的颜色,然后设置单元格的背景颜色为白色即可。

posted @ 2007-09-25 16:45 c#之旅 阅读(98) | 评论 (6)编辑

css框架样式备忘(转)

css框架样式

关键词:css框架样式

序号 中文说明 标记语法
1 边界留白 {margin:margin-top margin-right margin-bottom margin-left}
2 补  白 {padding:padding-top padding-right padding-bottom padding-left}
3 边框宽度 {border-width:border-top-width border-right-width border-bottom-width border-left-width}  
宽度值: thin|medium|thick|数值
4 边框颜色 {border-color:数值 数值 数值 数值}  数值:分别代表top、right、bottom、left颜色值
5 边框风格 {border-style:none|hidden|inherit|dashed|solid|double|inset|outset|ridge|groove}
6 边  框 {border:border-width border-style color}
  上 边 框 {border-top:border-top-width border-style color}
  右 边 框 {border-right:border-right-width border-style color}
  下 边 框 {border-bottom:border-bottom-width border-style color}
  左 边 框 {border-left:border-left-width border-style color}
7 宽  度 {width:长度|百分比| auto}
8 高  度 {height:数值|auto}
9 漂  浮 {float:left|right|none}
10 清  除 {clear:none|left|right|both}

样式表规定了一个容器BOX,它将要储存一个对象的所有可操作的样式。包括了对象本身、边框空白、对象边框、对象间隙四个方面。
为了大家更好地理解这些属性的意义,以及互相之间的关系,请看下面这个图示:

1.边界留白:margin

语法:{margin:margin-top margin-right margin-bottom margin-left}
说明:如图所示,位于BOX模型的最外层,包括四项属性。
格式:
·margin-top:顶部空白距离
·margin-right:右边空白距离
·margin-bottom:底部空白距离
·margin-left:左边空白距离
例子:
body { margin: 5em } /* 所有边界设为5em */
p { margin: 2em 4em } /* 上和下边界为2em,左和右边界为4em */
div { margin: 1em 2em 3em 4em } /* 上边界为1em,右边界为2em,下边界为3em,左边界为4em */
body { margin-top: 0 } /*消除文件的上边界*/
P.narrow { margin-right: 50% }
DT { margin-bottom: 3em }
如果边界在垂直方向邻接(重叠)了,会改用其中最大的那个边界值。而水平方向则不会。
注意:margin的简化方式,可以在其后连续加上四个带长度单位的数字,来分别表示margin-top、margin-right、margin-bottom、margin-left,每个数字中间要用空格分隔。

2.补 白:padding

语法:{padding:padding-top padding-right padding-bottom padding-left}
作用:是个简写属性,用于设置上、右、下、左方向边框和内容元素的间距
说明:
·padding-top 顶部补白
·padding-right 右边补白
·padding-bottom 底部补白
·padding-left 左边补白
例子:
bc { padding: 1em 2em 3em 4em } /* 上、右、下、左分别为 */
bc { padding: 2em 4em 5em } /* 上补白2,右补白4em,下补白5em,左补白4em */
bc { padding: 2em 4em } /* 上下为2em,左右为4em */
bc { padding: 2em} /* 上、右、下、左均为2em */
注意:用单一值可以让毎边等距填充;如果用两个值,则第一个值用于上下填充,第二个值用于左右填充;如果用三个值,则赋于上边填充,左右填充和下边填充;如果用四个值,则分别用于上,右,下,左填充。可以混合数值类型。注意:和MARGIN类似,paddingG也可以一次性设置所有的对象间隙,格式也和margin相似。

3. 边框宽度:border-width

语法:{border-width:border-top-width border-right-width border-bottom-width border-left-width}
宽值:thin|medium|thick|数值

4. 边框颜色:border-color

语法:{border-color:数值 数值 数值 数值}  
说明:数值分别代表top、right、bottom、left颜色值

5. 边框风格:border-style

语法:{border-style:none|hidden|inherit|dashed|solid|double|inset|outset|ridge|groove}
说明:
·none 无边框
·hidden 隐藏边框
·inherit 继承父边框
·dashed 边框为长短线
·dotted 边框为点线
·solid 边框为实线
·double 边框为双线
·inset 根据color属性显示不同效果的3D边框
·outset 根据color属性显示不同效果的3D边框
·ridge 根据color属性显示不同效果的3D边框
·groove 根据color属性显示不同效果的3D边框
注意:可以作用1至4的值,使用一个值代表四个边框,两个代表上下和左右。

6.边框:border

语法:{border:border-width border-style color}
作用:如图所示,位于边框空白和对象空隙之间,包括了七项属性。
说明:
·border-top 上边框宽度|边框式样|color
·border-right 右边框宽度|边框式样|color
·border-bottom 下边框宽度|边框式样|color
·border-left 左边框宽度|边框式样|color
·border-width 所有边框宽度
 thin细线| medium 中等线|thick 粗线

·border-color:边框颜色
·border-style:边框样式参数
注意:其中border-width可以设置所有边框宽度,border-color同时设置四面边框的颜色时,可以连续写上四种颜色,并用空格分隔。边框是按border-top、border-right、border-bottom、border-left的顺序设置。

7. 宽度:width

语法:{width:数值|百分比|auto}
作用:设置元素宽度,浏览器按照这个宽度调整图形
例子:input.button { width: 10em }

8. 高度:height

语法:{height:数值|auto}
作用:与宽度属性一样,高度可以应用于设定图象的比例
例子:IMG.foo { width: 40px; height: 40px }

9. 漂浮:float

语法:{float:left|right|none}
作用:用于在普通元素流布置规则以外放上元素
说明:
·none 无改动。
·left 将其它元素内容放到浮动元素右边。
·right 将其它元素内容放到浮动元素左边。
注意:
漂浮属性允许网页制作者将文本环绕在一个元素的周围. 这同HTML 3.2中IMG元素的ALIGN=left和ALIGN=right一样,但CSS1允许所有对象“漂浮”,而不像HTML 3.2那样仅仅允许图象和表格。

10. 清除:clear

语法:{clear:none|left|right|both}
作用:用于允许或禁止指定元素旁边放置其它元素(通常是线上图形)
说明:
·left 将元素放在左边浮动元素下面
·right 将元素放在右边浮动元素下面
·both 元素两边都不允许放置浮动元素
注意:清除属性指定一个元素是否允许有元素漂浮在它的旁边。值left移动元素到在其左边的漂浮的元素的下面;同样的值right移动到其右边的漂浮的元素下面。其他的还有缺省的none值,和移动元素到其两边的漂浮的元素的下面的none值。这个属性类似于HTML 3.2的函数<BR CLEAR=left|right|all|none>,但它能应用于所有元素。

posted @ 2007-09-25 15:56 c#之旅 阅读(594) | 评论 (0)编辑

html样式备忘(0转)

表单概述
花样表单
表单提交
常用技巧

本专题从最基础的表单知识,到表单的高级应用,让你有一个比较全面地认识,相信你在读完本专题以后,一定会对表单非常熟悉。

一、表单概述


  表单,在网页中的作用不可小视,主要负责数据采集的功能,比如你可以采集访问者的名字和e-mail地址、调查表、留言簿等等。

1、表单的组成


  一个表单有三个基本组成部分:

  • 表单标签:这里面包含了处理表单数据所用CGI程序的URL以及数据提交到服务器的方法。
  • 表单域:包含了文本框、密码框、隐藏域、多行文本框、复选框、单选框、下拉选择框和文件上传框等。
  • 表单按钮:包括提交按钮、复位按钮和一般按钮;用于将数据传送到服务器上的CGI脚本或者取消输入,还可以用表单按钮来控制其他定义了处理脚本的处理工作。

  为了顾及不同的网页设计工具,本文只讲述代码的设计,不具体讲述操作方法,下面就是表单的HTML代码设计要点:

1.1 表单标签<form></form>

  功能:用于申明表单,定义采集数据的范围,也就是<form>和</form>里面包含的数据将被提交到服务器或者电子邮件里。

  语法:<FORM ACTION="URL" METHOD="GET|POST" ENCTYPE="MIME" TARGET="...">. . .</FORM>

  属性解释见下表:

action=url 指定一来处理提交表单的格式.它可以是一个URL地址(提交给程式)或一个电子邮件地址.
method=get或post 指明提交表单的HTTP方法.可能的值为:
  1. post:POST方法在表单的主干包含名称/值对并且无需包含于action特性的URL中.
  2. get:不赞成。GET方法把名称/值对加在action的URL后面并且把新的URL送至服务器.这是往前兼容的缺省值.这个值由于国际化的原因不赞成使用.
enctype=cdata 指明用来把表单提交给服务器时(当method值为"post")的互联网媒体形式.这个特性的缺省值是"application/x-www-form-urlencoded"
TARGET="..." 指定提交的结果文档显示的位置:
  1. _blank :在一个新的、无名浏览器窗口调入指定的文档;
  2. _self :在指向这个目标的无素的相同的框架中调入文档;
  3. _parent :把文档调入当前框的直接的父FRAMESET框中;这个值在当前框没有父框时等价于_self;
  4. _top :把文档调入原来的最顶部的浏览器窗口中(因此取消所有其它框架);这个值等价于当前框没有你框时的_self.


  例如:
  <form action="http://www.yesky.com/test.asp" method="post" target="_blank">...</form>
  表示表单将向http://www.yesky.com/test.asp以post的方式提交,提交的结果在新的页面显示,数据提交的媒体方式是默认的application/x-www-form-urlencoded方式;
1.2 表单域

  表单域包含了文本框、多行文本框、密码框、隐藏域、复选框、单选框和下拉选择框等,用于采集用户的输入或选择的数据,下面分别讲述这些表单域的代码格式:

1.2.1 文本框

  文本框是一种让访问者自己输入内容的表单对象,通常被用来填写单个字或者简短的回答,如姓名、地址等。
  代码格式:<input type="text" name="..." size="..." maxlength="..." value="...">

  属性解释:
  type="text"定义单行文本输入框;
  name属性定义文本框的名称,要保证数据的准确采集,必须定义一个独一无二的名称;
  size属性定义文本框的宽度,单位是单个字符宽度;
  maxlength属性定义最多输入的字符数。
  value属性定义文本框的初始值

样例1:

样例1代码:

<input type="text" name="example1" size="20" maxlength="15">

1.2.2 多行文本框

  也是一种让访问者自己输入内容的表单对象,只不过能让访问者填写较长的内容。
  代码格式:<TEXTAREA name="..." cols="..." rows="..." wrap="VIRTUAL"></TEXTAREA>
  属性解释:
  name属性定义多行文本框的名称,要保证数据的准确采集,必须定义一个独一无二的名称;
  cols属性定义多行文本框的宽度,单位是单个字符宽度;
  rows属性定义多行文本框的高度,单位是单个字符宽度;
  wrap属性定义输入内容大于文本域时显示的方式,可选值如下:

  • 默认值是文本自动换行;当输入内容超过文本域的右边界时会自动转到下一行,而数据在被提交处理时自动换行的地方不会有换行符出现;
  • Off,用来避免文本换行,当输入的内容超过文本域右边界时,文本将向左滚动,必须用Return才能将插入点移到下一行;
  • Virtual,允许文本自动换行。当输入内容超过文本域的右边界时会自动转到下一行,而数据在被提交处理时自动换行的地方不会有换行符出现;
  • Physical,让文本换行,当数据被提交处理时换行符也将被一起提交处理。


样例2:


  

样例2代码:

<TEXTAREA name="example2" cols="20" rows="2" wrap="PHYSICAL"></TEXTAREA>
  

1.2.3 密码框

  是一种特殊的文本域,用于输入密码。当访问者输入文字时,文字会被星号或其它符号代替,而输入的文字会被隐藏。

  代码格式:<input type="password" name="..." size="..." maxlength="...">

  属性解释:
  type="password"定义密码框;
  name属性定义密码框的名称,要保证数据的准确采集,必须定义一个独一无二的名称;
  size属性定义密码框的宽度,单位是单个字符宽度;
  maxlength属性定义最多输入的字符数。

样例3:

样例3代码:

<input type="password" name="example3" size="20" maxlength="15">


1.2.4 隐藏域

  隐藏域是用来收集或发送信息的不可见元素,对于网页的访问者来说,隐藏域是看不见的。当表单被提交时,隐藏域就会将信息用你设置时定义的名称和值发送到服务器上。

  代码格式:<input type="hidden" name="..." value="...">

  属性解释:
  type="hidden"定义隐藏域;
  name属性定义隐藏域的名称,要保证数据的准确采集,必须定义一个独一无二的名称;
  value属性定义隐藏域的值
  例如:<input type="hidden" name="ExPws" value="dd">


1.2.5 复选框

  复选框允许在待选项中选中一项以上的选项。每个复选框都是一个独立的元素,都必须有一个唯一的名称。

  代码格式:<INPUT type="checkbox" name="..." value="...">

  属性解释:
  type="checkbox"定义复选框;
  name属性定义复选框的名称,要保证数据的准确采集,必须定义一个独一无二的名称;
  value属性定义复选框的值

样例4: yesky.com Chinabyte.com

样例4代码:
  <input type="checkbox" name="yesky" value="09">yesky.com
  <input type="checkbox" name="Chinabyte" value="08">Chinabyte.com


1.2.6 单选框

  当需要访问者在待选项中选择唯一的答案时,就需要用到单选框了。

  代码格式:<input type="radio" name="..." value="...">

  属性解释:
  type="radio"定义单选框;
  name属性定义单选框的名称,要保证数据的准确采集,单选框都是以组为单位使用的,在同一组中的单选项都必须用同一个名称;
  value属性定义单选框的值,在同一组中,它们的域值必须是不同的。

 样例5: yesky.com Chinabyte.com

样例5代码:
  <input type="radio" name="myFavor" value="1">yesky.com
  <input type="radio" name="myFavor" value="2">Chinabyte.com


1.2.7 文件上传框

  有时候,需要用户上传自己的文件,文件上传框看上去和其它文本域差不多,只是它还包含了一个浏览按钮。访问者可以通过输入需要上传的文件的路径或者点击浏览按钮选择需要上传的文件。
  注意:在使用文件域以前,请先确定你的服务器是否允许匿名上传文件。表单标签中必须设置ENCTYPE="multipart/form-data"来确保文件被正确编码;另外,表单的传送方式必须设置成POST。

  代码格式:<input type="file" name="..." size="15" maxlength="100">

  属性解释:
  type="file"定义文件上传框;
  name属性定义文件上传框的名称,要保证数据的准确采集,必须定义一个独一无二的名称;
  size属性定义文件上传框的宽度,单位是单个字符宽度;
  maxlength属性定义最多输入的字符数。

 样例6:

样例6代码:

<input type="file" name="myfile" size="15" maxlength="100">


1.2.8 下拉选择框

  下拉选择框允许你在一个有限的空间设置多种选项。

  代码格式:
  <select name="..." size="..." multiple>
  <option value="..." selected>...</option>
  ...
  </select>

  属性解释:
  size属性定义下拉选择框的行数;
  name属性定义下拉选择框的名称;
  multiple属性表示可以多选,如果不设置本属性,那么只能单选;
  value属性定义选择项的值;
  selected属性表示默认已经选择本选项。

 样例7:

样例7代码:
  <select name="mySel" size="1">
  <option value="1" selected>yesky.com</option>
  <option value="d2">chinabyte.com</option>
  </select>

 样例8:
   按Ctrl可以多选

样例8代码:
  <select name="mySelt" size="3" multiple>
  <option value="1" selected>yesky.com</option>
  <option value="d2">chinabyte.com</option>
  <option value="3">internet.com</option>
  </select>

1.3 表单按钮

  表单按钮控制表单的运作。

1.3.1 提交按钮

  提交按钮用来将输入的信息提交到服务器。

  代码格式:<input type="submit" name="..." value="...">

  属性解释:
  type="submit"定义提交按钮;
  name属性定义提交按钮的名称;
  value属性定义按钮的显示文字;

 样例9:

样例9代码:

<input type="submit" name="mySent" value="发送">

1.3.2 复位按钮

  复位按钮用来重置表单。

  代码格式:<input type="reset" name="..." value="...">

  属性解释:
  type="reset"定义复位按钮;
  name属性定义复位按钮的名称;
  value属性定义按钮的显示文字;

 样例10:

样例10代码:

<input type="reset" name="myCancle" value="取消">

1.3.3 一般按钮

  一般按钮用来控制其他定义了处理脚本的处理工作。

  代码格式:<input type="button" name="..." value="..." onClick="...">

  属性解释:
  type="button"定义一般按钮;
  name属性定义一般按钮的名称;
  value属性定义按钮的显示文字;
  onClick属性,也可以是其它的事件,通过指定脚本函数来定义按钮的行为;

样例11:

样例11代码:
  <input type="button" name="myB" value="保存" onClick="javascript:alert('it is a button')">

  二、表单外观的美化

  很多时候,我们仅仅为了实现数据采集这个功能来使用表单,常看到的表单都是“千人一面”、毫无生气,本专题尝试着来改变这一现象,试图赋予表单一个丰富多彩的面貌。
表单的外观,也是最为直接的花样,可以通过改变它来实现特效,本文分两个出发点来讲述:CSS魔法和图像魔法。

  1、CSS魔法


CSS,就是大家知道的层叠样式单,它可以定义页面元素的外观,包括字体样式、背景颜色和图像样式、边框样式、补白样式、边界样式等等,下面就从这几个方面出发,讨论怎样将CSS应用到表单中,彻底美化它!

  1.1 字体样式的应用


  字体样式包括:字体族科(font-family)、字体风格(font-style)、字体变形(font-variant)、字体加粗(font-weight)、字体大小(font-size)、字体(font),具体的定义方法,在这里不详细讲述,可以参考它的资料。
  也许你已经注意到,按钮上的文字不漂亮,其实可以通过CSS字体样式来解决,同样地,其它的几个涉及到文字的表单项,例如,文本框、多行文本框、口令框、下拉选择框都可以应用字体样式。
  为了充分展示这些应用,下例特别设计了几种样式,在实际应用中,不必这么凌乱,灵活运用:

 样例12:
表单元素的字体样式展示






  分析:

  • 文本框里的文字是加粗的,大小是9pt,字体是宋体,代码:
    <input type="text" name="formExam" size="10" maxlength="10" style="font-family:宋体; font-size: 12px; font-weight: bold" value="加粗">
  • 口令框文字是红色的,代码:
    <input type="password" name="formExam3" style="font-size: 9pt; color: #FF0000" size="8" maxlength="8">
  • 下拉框文字颜色是红色的,字体是Verdana,大小是9pt,代码:
    <select name="select" size="1" style="font-family:Verdana,Arial; font-size: 9pt; color: #FF0000">
    <option value="2" selected>yesky.com</option>
    <option value="1">redidea.net</option>
    </select>
  • 多行文本框了的字体是Verdana,有下划线,大小是9pt,代码:
    <TEXTAREA name="formExam2" cols="30" rows="3" style="font-family:Verdana, Arial; font-size: 9pt; color: #000099; text-decoration: underline" align=right>underline css style</TEXTAREA>
  • 发送1和发送2按钮的文字不同,是因为发送1按钮使用了9pt的宋体文字,所以比较美观,发送1按钮的代码:
    <input type="submit" name="Submit" value="发送1" style="font-family:宋体; font-size: 9pt;">


  小结:只要我们对字体的样式熟悉了,就可以灵活多变,不一定要在标签里面使用style来定义,完全可以在<head>里定义,或者外部引用CSS文件,用到的时候引用一下就能达到预期的效果。

1.2 背景颜色和图像样式的应用

  有很多时候,网页由于颜色的搭配,不得不对表单的背景颜色和图像样式进行设计,背景颜色利用background-color属性,背景图像利用background-image属性,颜色和图像同样能够得到意想不到的效果。

 样例13: 表单元素的背景展示
复选 单选



  分析:



1.3 边框样式的应用

  也许你觉得表单的边框过于死板,我们能否设计单线条,或者其它的边框样式呢?当然可以!

  和边框有关的属性有:边框式样border-style、上边框border-top、右边框border-right、下边框border-bottom、左边框border-left、边框颜色border-colr、边框宽度 border-width、上边框宽度border-top-width、右边框宽度border-right-width、下边框宽度border-bottom-width、左边框宽度border-left-width、边框 border,这里不作详细的讲述,请参考有关资料。

 样例14:
8种边框形式的展示




复选 单选

  分析:

  2、图像魔法

  图像,是网页的重要元素,能否应用到表单中呢?接下来,我们用图像来改造死板的表单,分两个部分来探讨:用图像代替按钮、用背景图美化表单元素。

  2.1 用图像代替按钮


由于默认的表单按钮太丑陋,绝大多数的网站采用了图像按钮,那么,我们通过两个实例来看看怎样实现的:

样例16
:用图像代替提交按钮:

  当只有一个提交按钮的时候,可以简单地实现,不用加事件函数,代码是:
<input type="image" name="..." src="url" width="" height="..." border="...">

  除了标签改为input type="image"以外,其它的属性和<img>标签的属性是一样的,例如:

  是不是只要用图片就可以代替所有的按钮呢?是的,不过,不是上面这么简单了,必须加上事件函数,不然的话,图片都是提交按钮,不能完成复位等功能,看看下面的例子就知道了:

样例17
:用图片代替所有的表单按钮:
注意:

  • 文本框背景是黑色的,字体是白色的,代码:
    <input type="text" name="RedFld" size="10" maxlength="10" style="color: #FFFFFF; background-color: #000000">
  • 口令框背景是灰色的,代码:
    <input type="password" name="RedFld3" size="10" maxlength="10" style="background-color: #999999">
  • 单选和复选按钮的背景是红色的,代码:
    <input type="checkbox" name="checkbox" value="checkbox" style="background-color: #FF0000">
    <input type="radio" name="radiobutton" value="radiobutton" style="background-color: #FF0000">
  • 下拉选择框的选项是丰富多彩的背景,代码:
    <select name="select2" size="1">
    <option selected style="background-color: #FF0000">yesky.com</option>
    <option style="background-color: #0000CC">redidea.com</option>
    <option style="background-color: #009900">chinabyte.com</option>
    <option style="background-color: #ff33cc">sina.com</option>
    <option style="background-color: #999999">sohu.com</option>
    </select>
  • 多行文本框的背景是一个图像,代码:
    <TEXTAREA name="RedFld2" cols="25" rows="3" wrap="VIRTUAL" style="background-image: url(back.gif)"></TEXTAREA>
  • submit1按钮的背景是黄色的,代码:
    <input type="submit" name="Submit3" value="Submit1" style="background-color: #FF9900">
  • submit2按钮的背景是一个图像,代码:
    <input type="submit" name="Submit22" value="Submit2" style="background-image: url(back.gif)">


  小结:用好background-color属性和background-image属性,就可以设计很出“色”表单了。

  • 文本框有8种类型边框样式,即border-style,分别展示在本例中,
    边框宽度的设置有一个规律:
    border-width: [ thin | medium | thick | <长度> ]{1,4}
    边框宽度用一到四个值来设置元素的边框宽度,它们分别被应用于上、右、下和左边框宽度。如果只给出一个值,它被应用于所有边框宽度。如果两个或三个值给出了,省略了的值与对边相等
    例如:<input type="text" name="RedF" style="border-color: #006600; border-style: dotted; border-width: 1px">
    边框颜色的设置有一个规律:
    border-colr: <颜色>{1,4}
    边框颜色用一到四个值来设置元素的边框颜色。如果四个值都给出了,它们分别被应用于上、右、下和左边框颜色。如果只给出一个值,它被应用于所有边框颜色。如果两个或三个值给出了,省略了的值与对边相等。
  • 对于多行文本框以及按钮,设置边框的方法和文本框一样,不再陈述;
  • 由于下拉选择框Select不支持边框的设置,所以对它设置是徒劳的;
  • 单选按钮和复选按钮的边框,设置的效果不十分协调,所以建议不要对它们设置,不然有“画蛇添足”之感;


 样例15:
边框的特殊设计展示

  聪明的读者一定会想到,如果设计单边框,一定更加漂亮,对!下面我们来尝试以下部分边框的设置效果,本例仅仅以Solid和dotted两种类型的边框作演示,其它类型的边框原理相同:


代码:style="background-color: #FFFFFF; border-color: #000099; border-style: solid; border-width: 0px 0px 1px"


代码:style="background-color: #FFFFFF; border-color: #CCCCCC black #FF0000; border-style: solid; border-width: 1px 0px"


代码:style="background-color: #FFFFFF;border-left: 1px dotted #ff0000; border-right: 1px dotted #ff0000; border-top: 1px dotted #ff0000; border-bottom:1px solid #000000"
注意:边框类型的外观如下:

  • none :无边框。与任何指定的border-width值无关;
  • dotted :点线;
  • dashed :虚线;
  • solid :实线边框;
  • double :双线边框。两条单线与其间隔的和等于指定的border-width值;
  • groove :3D凹槽;
  • ridge :边框突起;
  • inset :3D凹边;
  • outset :3D凸边;

 

  • 代替submit按钮的图片代码格式是
    <input type="image" name="..." src="..." onClick="document.formName.submit()">
  • 代替reset按钮的代码图片格式是
    <a href="javascript:document.formName.reset();"><img border=0 src="..."></a>
    注:这里的formName是表单的name属性值。

  2.2 用背景图美化表单元素

  其实,前面已经提到过,用background-image:url()属性来定义表单元素的背景图,这里仅举一例,可以看到,除了select没有效果以外,其它的都可以配合网页的背景来设置它们。

样例18
:背景图的设置


三、表单的提交

  既然表单是用来采集用户输入的数据,那么,就应该保证用户的数据被准确地提交到预定的地点,也就是说,我们在表单提交的时候,应该对用户的数据进行检验,一来可以避免用户误输数据,二来可以避免用户输入非法的,或者说不合格的数据;检验合格以后,还要保证用户的数据提交到特定的程序。

  1.数据的检验

  数据的检验,通常有两种程序:客户端检验和服务器端检验。客户端检验,比较快,服务器端检验,相对来说比较慢,为了确保安全,通常同时采用,这样就可以避免用户刻意破坏。
  不管采用什么方式,数据检验的原理都是一样的,一旦用户输入的数据不符合规定,就报错,要求用户重新输入,客户端检验常使用Javascrip脚本,服务器端的视系统而定,本文不对数据检验的具体程序设计进行探讨,仅仅列举几个例子来说明。

 样例19
:必填项,以及简单的数据类型检验
以下带*的必须输入:
姓名: *
Email: *

  分析:

  • 本例给表单添加了onSubmit事件,通过onSubmit="return CheckDate()"指定提交前,必须通过函数CheckDate()来检验,如果不合格,返回输入数据;
  • 数据检验的函数如下:
    <script>
    function CheckDate(){
    //取得输入的数据
    userName = document.RedForm.userName.value;
    userEmail = document.RedForm.userEmail.value;
    //如果没有输入姓名
    if (userName=="") {
    alert("请输入姓名");
    document.RedForm.userName.focus();
    return false;
    }else{
    //如果没有输入Email,或者Email地址错误(不含@)
    if ((userEmail=="")||(userEmail.indexOf("@")==-1)) {
    alert("请重新输入Email地址");
    document.RedForm.userEmail.focus();
    return false;
    }else return true;
    }
    }
    </script>


  2.表单的分支提交

  有的时候,表单需要根据用户的选择,提交到不同的程序,怎么做呢?
  通过脚本来检测用户的选择分支,从而向不同的程序提交表单,看看样例:

 样例20:
分支提交

用户名: 密码:
公司用户 个人用户


  分析:

用户名: 密码: 登录 清空


  分析:

  通过onClick="document.form.submit()"来提交表单;用onClick="document.form.reset()"来复位表单,这样一来,任何一个元素都可以实现提交表单了。

四、表单的常用技巧

  这些常用技巧,往往是和事件以及脚本联系在一起,本文注重功能,至于脚本,就不一一详细分析。常见的技巧有:下拉跳转菜单,表单内容的聚焦。

  1.下拉跳转菜单

  在Dreamweaver中,可以很方便地建立基于表单的下拉菜单,为了兼顾非Dreamweaver用户,这里讲述一下这种技巧。

 样例22
:基于表单的下拉跳转菜单


  分析:实际上,这里用到了一个函数,用于向选择的地址跳转,

<script language="JavaScript">
function FormMenu(targ,selObj,restore){
eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
if (restore) selObj.selectedIndex=0;
}
</script>

  然后,给下拉选择框赋予一个事件onChange="FormMenu('parent',this,0)",就可以了。

  2.表单内容的聚焦


  内容聚焦,常用在Copy&Paste类网站上,用的好的话,可以方便用户。

 样例23
:内容自动聚焦

  分析
: 上面分别使用了两个事件,Email的是onFocus="this.value=''",自动选择的是onMouseOver="this.select()"

  3.去掉表格和表单间的空隙

 样例24:表格和表单的空隙处理

  表格,我们常用来构架页面,可是,表格里的表单总是和表格的内容有一个空隙,对照一下:

这里有空隙

这里没有空隙

  分析:为什么右边没有空隙呢,看看右边的代码就知道了。

<table width="100%" border="1" cellspacing="1" cellpadding="1">
<tr>
<form name="form3" method="post" action="">
<td> <input type="text" name="textfield2"><br>
<input type="submit" name="Submit22" value="Submit">
这里没有空隙 </td>
</form>
</tr>
</table>

  也就是说,把<form>标签放到<tr>和<td>中间,对应的</form>放在</td>和</tr>中间!

  4.用Email提交表单(只适合Outlook用户,不适合Foxmail用户)

 样例25:Email提交表单
主题:
内容:
 

  分析:看看我们的表单<form>标签就知道了,格式如下:
<form name="..." action="mailto:xxxxx@xxx.xxx?Subject=表单反馈" enctype="text/plain" method="post">...</form>
这里的mailto:后面加上要接受信息的地址,?Subject是设置默认的Email标题,enctype="text/plain"是必要的,表示信息以文本方式提交,没有任何加密,所以这种方法常用于没有Asp/Php/cgi支持的空间,也只是一个代用的方法,用户必须安装Outlook,并且是默认的邮件程序,才能顺利执行提交,据说TheBat!也可以,大家可以试验一下。


这里首先用到的是form的onSubmit="TwoSubmit(this)"
然后根据选择的分支,来分别递交到不同的程序,TwoSubmit()函数如下:

<script>
function TwoSubmit(form){
if (form.Ref[0].checked){
form.action = "cop.asp";//这里是分之一
}else{
form.action = "ind.asp";//这里是分之二
}
form.submit();
}
</script>

  3.用任何元素提交表单

  是不是只有按钮或者图片按钮才能提交表单呢?当然不是,实际上,任何页面元素都可以提交表单,不过嘛,都是通过脚本来完成的,下面我们就使用链接来代替Submit按钮:

 样例21
:用链接来提交表单

posted @ 2007-09-25 15:41 c#之旅 阅读(34) | 评论 (1)编辑

2007年9月4日

installaware使用备忘

对于在安装过程中运行其他程序的设置:

设置 RunTiming 为 after install ;
不要选择 Wait for program to finish execution 选项(切记)

然后保存,再点编辑,设置 Hide Program window,
设置 rerurn result in varible 为 SUCCESS,
这样就可以在安装完应用程序后,自动运行一个文件,来进行dll的处理或者其他程序运行前应该做的操作。

posted @ 2007-09-04 22:40 c#之旅 阅读(257) | 评论 (0)编辑

2007年9月3日

闲着没事,把InstallAware 7.0的资源汉化了一下,有兴趣的可以下载。

将此文件覆盖到C:\Program Files\InstallAware\InstallAware 7\trans (以自己安装的路径为准)

http://www.cnblogs.com/Files/CShapWinForms/translations.rar

将下面文件解压,并覆盖C:\Program Files\InstallAware\InstallAware 7\Templates\dotNET


http://www.cnblogs.com/Files/CShapWinForms/dotNET.rar

这样,在你制作安装程序的时候,新建项目,选择.net setup模本,然后在项目的属性里边,选择Locatize为 china (prc)

你所生成的安装程序将为中文方式。

有需要的可以下载,喜欢英文的高手不需要下载。

posted @ 2007-09-03 21:28 c#之旅 阅读(517) | 评论 (4)编辑

2007年7月8日

dev发布,自己备忘.转自fosoyo





方法一:
将你的c:\WINDOWS\assembly目录打包,在客户机上释放,覆盖掉客户机的目录

方法二:
开发的时候,用cracked dll开发,但是安装的时候用正版的安装,在安装完毕
用dos命令进入 c:\WINDOWS\assembly 目录,找到相应的dll文件夹,再进入相应
的签名的目录,覆盖掉里面的dll文件。

方法三:
在开发完毕之后,制作成安装包的时候,不要让cracked dll自动安装,在程序安装包
运行的后期,将安装开发人员机器的目录,在c:\WINDOWS\assembly建立相同的目录,
然后复制cracked dll到相同的路径下。

方法一存在风险,方法二、三均可以用bat文件来执行,比较安全。

posted @ 2007-07-08 16:10 c#之旅 阅读(192) | 评论 (1)编辑

2007年7月7日

出现"此版本的sql server不支持用户实例登陆标志" 问题的解决方法

场景:
开发工具vs2005 数据库 sql 2005
加入了Enterprise Libraty后,新增了一个data access application block,在写ConnectString的时候,出现这个错误提示,

解决办法:
在连接属性的设置里边,点高级,将User Instance 设置为false,默认的true,所以才导致这个问题的出现.

设置好后,重新保存,就不出错误了.

posted @ 2007-07-07 17:03 c#之旅 阅读(1048) | 评论 (6)编辑

2007年6月27日

C#MD5加密解密

C#MD5加密解密
2007-03-12 11:35

using System.Security.Cryptography;
using    System.IO;  
using    System.Text;

///MD5加密
  public string MD5Encrypt(string    pToEncrypt,  string    sKey)
    {  
     DESCryptoServiceProvider    des  
=  new    DESCryptoServiceProvider();  
   
byte[]    inputByteArray  =    Encoding.Default.GetBytes(pToEncrypt);  
     des.Key  
=    ASCIIEncoding.ASCII.GetBytes(sKey);  
     des.IV  
=    ASCIIEncoding.ASCII.GetBytes(sKey);  
     MemoryStream    ms  
=  new    MemoryStream();  
     CryptoStream    cs  
=  new    CryptoStream(ms,    des.CreateEncryptor(),CryptoStreamMode.Write);  
     cs.Write(inputByteArray,  
0,    inputByteArray.Length);  
     cs.FlushFinalBlock();  
     StringBuilder    ret  
=  new    StringBuilder();  
   
foreach(byte    b  in    ms.ToArray())  
     {  
      ret.AppendFormat(
"{0:X2}",    b);  
     }  
     ret.ToString();  
   
return    ret.ToString();  


    }

  
///MD5解密
  public string MD5Decrypt(string    pToDecrypt,  string    sKey)
    {
     DESCryptoServiceProvider    des  
=  new    DESCryptoServiceProvider();  

   
byte[]    inputByteArray  =  new  byte[pToDecrypt.Length  /  2];  
   
for(int    x  =  0;    x  <    pToDecrypt.Length  /  2;    x++)  
     {  
    
int    i  =    (Convert.ToInt32(pToDecrypt.Substring(x  *  2,  2),  16));  
      inputByteArray[x]  
=    (byte)i;  
     }  

     des.Key  
=    ASCIIEncoding.ASCII.GetBytes(sKey);  
     des.IV  
=    ASCIIEncoding.ASCII.GetBytes(sKey);  
     MemoryStream    ms  
=  new    MemoryStream();  
     CryptoStream    cs  
=  new    CryptoStream(ms,    des.CreateDecryptor(),CryptoStreamMode.Write);  
     cs.Write(inputByteArray,  
0,    inputByteArray.Length);  
     cs.FlushFinalBlock();  

     StringBuilder    ret  
=  new    StringBuilder();  
             
   
return    System.Text.Encoding.Default.GetString(ms.ToArray());  
    }

-------------------------------------------------------------------------------

using System;
using System.Text;
using System.Globalization;
using System.Security.Cryptography;
class DES
{
// 创建Key
public string GenerateKey()
{
DESCryptoServiceProvider desCrypto = (DESCryptoServiceProvider)DESCryptoServiceProvider.Create();
return ASCIIEncoding.ASCII.GetString(desCrypto.Key);
}
// 加密字符串
public string EncryptString(string sInputString, string sKey)
{
byte [] data = Encoding.UTF8.GetBytes(sInputString);
DESCryptoServiceProvider DES = new DESCryptoServiceProvider();
DES.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
DES.IV = ASCIIEncoding.ASCII.GetBytes(sKey);
ICryptoTransform desencrypt = DES.CreateEncryptor();
byte [] result = desencrypt.TransformFinalBlock(data, 0, data.Length);
return BitConverter.ToString(result);
}
// 解密字符串
public string DecryptString(string sInputString, string sKey)
{
string [] sInput = sInputString.Split("-".ToCharArray());
byte [] data = new byte[sInput.Length];
for(int i = 0; i < sInput.Length; i++)
{
data[i] = byte.Parse(sInput[i], NumberStyles.HexNumber);
}
DESCryptoServiceProvider DES = new DESCryptoServiceProvider();
DES.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
DES.IV = ASCIIEncoding.ASCII.GetBytes(sKey);
ICryptoTransform desencrypt = DES.CreateDecryptor();
byte [] result = desencrypt.TransformFinalBlock(data, 0, data.Length);
return Encoding.UTF8.GetString(result);
}
}
class Test
{
static void Main()
{
DES des = new DES();
string key = des.GenerateKey();
string s0 = "中国软件 - csdn.net";
string s1 = des.EncryptString(s0, key);
string s2 = des.DecryptString(s1, key);
Console.WriteLine("原串: [{0}]", s0);
Console.WriteLine("加密: [{0}]", s1);
Console.WriteLine("解密: [{0}]", s2);
}
}
/* 程序输出:
原串: [中国软件 - csdn.net]
加密: [E8-30-D0-F2-2F-66-52-14-45-9A-DC-C5-85-E7-62-9B-AD-B7-82-CF-A8-0A-59-77]
解密: [中国软件 - csdn.net]
*/

posted @ 2007-06-27 11:50 c#之旅 阅读(1671) | 评论 (7)编辑

2007年6月24日

dxperience7.1.3中的XGridControl使用细节

自己研究的,写下来备忘
 

XGridControl使用细节

 

去掉上面的拖拉Group背景

Feature Browser—Grouping—Group panel—ShowGroupPanel=False

 

更改默认的Group的提示

Feature Browser—Grouping—Group panel—GroupPanelText

 

进行Group分类后是否还在原来的表格中显示该列

Feature Browser—Grouping—Behavior—ShowGroupedColumns=True or False

 

分类后是否自动展开所有项目

Feature Browser—Grouping—Behavior—AutoExpandAllGroups

 

是否允许拖动分类

Feature Browser—Grouping—End User Actions—AllowGroup=True

 

 

分类后是否还可以点标题列进行排序

Feature Browser—Grouping—Behavior—KeepGroupExpandedOnSorting

 

对于在标题列上出现的右键菜单,可以进行禁止

 

Feature Browser—Grouping—Context Menus—EnableColumnMenu=True Or False

Feature Browser—sorting—Context Menus—EnableColumnMenu=True Or False

 

一次选中一列并且该行高亮度显示,要多项结合,不能编辑,选择一行而不是一个单元格

Feature Browser—Editing—In Place Editors—Editable=False;

Feature Browser—Editing—Cell Editing—Editable=False;

Feature Browser—Visual Elements—Focus—EnableAppearanceFocusedCell=False

Feature Browser—Visual Elements—Focus—EnableAppearanceFocusedRow=True

Feature Browser—Visual Elements—Focus—InvertSelection=False

Feature Browser—Focus,Selection,Navigation—Row and cell selection—MultiSelectMode=RowSelect

 

在脚注里显示汇总信息

Feature Browser—Summary —Total Summary—Show Footer=True;

Feature Browser—Summary —Total Summary—右边点column,点中一列,在右边设置

FieldName为要统计的列,summaryType为要统计的类型,DisplayFormat为要显示的内容

比如“总共有 {0} 个人”,其中的{0}会在统计的时候自动替换。即使是小数,也可以用{0}来代替,系统会自动将{0}转换成要用的数据,比较智能。

 

在分组里边显示汇总信息

Feature Browser—Summary —Groupl Summary右边的Group Summary里边添加字段,并设置FieldName,Display Format,Summary Type,如果要显示在分组列中,将showInGroupColumnFoot设置为showInGroupRow

单选状态下获得被选中行的某一列的值

DataRow row = gridView2.GetDataRow( gridView2.GetSelectedRows()[0]);
                    MessageBox.Show(row["Name"].ToString());


多选状态下获得(当然也适用于选择一个行的情况)

foreach(int i in gridView2.GetSelectedRows()) {
          
                    DataRow row = gridView2.GetDataRow(i);
                    MessageBox.Show(row["Name"].ToString());
                }

posted @ 2007-06-24 22:47 c#之旅 阅读(159) | 评论 (0)编辑

2007年5月27日

证据把握

找出有罪证据和被告人的辩解,分别列出来,进行对比,做到心中有数。利用被害人的陈述的细节,反复考量,有针对性的对被告人进行讯问,促使其作出一定的解释,根据其辩解,针对细节问题,进行思考,并让被告人对讯问的问题不能自圆其说,不断暴露其辩解的矛盾性,让其心理上产生无法狡辩的压力,促使其认罪伏法。

主要在于细节的把握,比如现场,光线,衣着,犯罪动机、目的,犯罪后的表现等等问题。

细心就能发现问题。

posted @ 2007-05-27 15:03 c#之旅 阅读(75) | 评论 (0)编辑

2007年4月17日

明天要开庭了,是俺第一次开庭,记下来,做个纪念

已经有一段时间没有研究.net技术了,改研究法律了。

明天,我将以国家公诉人的身份第一次走上法庭,心情还是比较激动的,但愿有个好的开头,以后也能兢兢业业的完成好自己的工作。

特此留言。与兄弟们共享。

2007年4月17日晚22时许。

posted @ 2007-04-17 22:00 c#之旅 阅读(121) | 评论 (5)编辑

今天再次听了TechNet的关于word排版技巧,又加深了印象!

大家可以到technet下载,这个讲座还是很不错的,对长文档的排版进行了很好的讲解,以后在工作中肯定有用处。

概括下:
1、使用分节符,而不是使用分页符,更不要使用硬回车来分页,要不前面一变动,后面跟着都变了。使用分节的好处是可以控制文档内可以有不同的页眉、页脚,以及在同一个页面上有不同的设置,在同一个文档里边的页面里边可以有不同的页面设置。

2、尽量使用样式,而不是使用格式刷,要不需求一改变,肯定累死人。尽量使用已经有的格式,比如标题一,二等,而不要使用自定义的;

3、如果在页眉上出现一个水平线无法清除的话,解决办法是选中页眉中的段落编辑,选择边框和底纹,然后选择无,确定即可消除这个水平线。

这些其实很简单,但是如果养成好的习惯以后,你就会发现,排版大的文件也是如此的容易。

posted @ 2007-04-17 21:56 c#之旅 阅读(1252) | 评论 (2)编辑