C# WinForms

所有与Winform相关的内容,笔记,心得
posted @ 2011-07-05 13:35 萧寒 阅读(5082) | 评论 (19) 编辑
摘要: 如果你也碰到这个问题,那么算你运气好;昨日下了园子里vs2010的msdn 版本,并在自家机器上安装了下,xp 系统,安装过程没问题,但是发觉无法安装 silverlight4_tool,不安装这个,最近的项目编译不了;项目是英文版vs2010开发的,我以为是自己的台式机环境出问题了;然后我到自己的thinkpad t400上win7环境里装;装好后发觉还是无法正常安装阅读全文
posted @ 2010-05-30 22:28 萧寒 阅读(9623) | 评论 (34) 编辑
posted @ 2010-02-25 14:39 萧寒 阅读(227) | 评论 (0) 编辑
posted @ 2010-01-12 11:13 萧寒 阅读(1043) | 评论 (3) 编辑
摘要: ReSharper 是个非常好的VS 插件,我一般是使用4.1版本,尝试过4.5版本,但是有很多问题,最近看到了5.x版本,试了下,功能更多而且相对稳定了许多,决定升级; 一直到4.5都有keygen,5.0则只搜索到一个注册码,而且注册的时候还会到局域网验证;只能有一台机器可以用它 阅读全文
posted @ 2010-01-08 12:57 萧寒 阅读(4828) | 评论 (19) 编辑
摘要: 公司采用VSTS管理开发,但未对公网开放服务,在现场开发和更新版本都需要人为的将其找出并发给公司做构建;如此操作非常繁琐,并且容易弄错版本;针对这些情况,编写了一个版本检查工具;它并不是基于VSTS的实现,主要用于解决这些问题;阅读全文
posted @ 2008-06-18 00:08 萧寒 阅读(2384) | 评论 (10) 编辑
摘要: Pivot Table 的实现阅读全文
posted @ 2008-04-13 17:23 萧寒 阅读(19062) | 评论 (13) 编辑
posted @ 2007-11-13 20:42 萧寒 阅读(843) | 评论 (4) 编辑
摘要: FlowDiagrams 控件是一个独立的,完全自主版权的强大绘图组件,完全基于 .Net 2.0 实现。支持动态图和Windows 组件绘图,并具备良好的扩展性,可以短时间完成自定义的绘图对象。阅读全文
posted @ 2007-03-27 00:13 萧寒 阅读(4686) | 评论 (9) 编辑
摘要: 从写第一篇关于snap随笔的时候,我就有对此深入研究的想法,而上回和Kai.Ma 讨论了一下思路;也看到很多朋友的留言提到的采集服务,我还是决定把这些想法验证一下,看看采集速度,到底可以解决多少的问题.

思路:
首先要解决的问题是, webbrowser 运行在STA 模式下,每次采集都进行了构造和释放,所以首先避免这点,再就是,既然它是只能依靠主STA模式的线程运行的话,那就模拟多页面浏览器的机制,构造足够多的实例,让它们同步执行,然后及时地给它们派发消息,那么只要服务器带宽和内存都足够的情况下,它们可以最大程度降低并发采集所带来的性能问题.
阅读全文
posted @ 2006-12-30 01:22 萧寒 阅读(2982) | 评论 (11) 编辑
摘要: The IViewObject interface enables an object to display itself directly without passing a data object to the caller. In addition, this interface can create and manage a connection with an advise sink so the caller can be notified of changes in the view object.

The caller can request specific representations and specific target devices. For example, a caller can ask for either an object's content or an iconic representation. Also, the caller can ask the object to compose a pict阅读全文
posted @ 2006-12-28 10:08 萧寒 阅读(1181) | 评论 (6) 编辑
摘要: 在前天的POST中,实现了通过IViewObject接口截浏览器的图象的类,今天改善了一下,修正了内部的资源释放问题。并且完善了WebPageSnapshot类,将目标页面的错误对话框和新窗口问题处理了一下。总之抓图速度过慢,还想不出什么改善的办法;Kai.Ma在它的代码中实现了一个很好的改善速度的办法,就是把抓的图直接存盘,只是还缺少一个更新机制,所以我在此基础上增加了一个Hashtable,它的key 存放原始url,value 保存抓取的时间,当产生抓取请求的时候,先访问该hashtable,如果不存在则记录一笔,否则就比较一下时间,是否超过1天,超过的话继续抓取,否则直接传递上次抓取的图象文件,为了简单,该hashtable未持久化处理。阅读全文
posted @ 2006-12-27 15:24 萧寒 阅读(2924) | 评论 (10) 编辑
摘要: 今天又见到snap实现的文章,看来对此感兴趣的人挺多的.实现这个功能确实很'眩',我也来做一个把玩一下.
我的做法不是 Control.DrawToBitmap ,而是直接QueryInterface 浏览器Com对象的 IViewObject 接口,用它实现的Draw方法,画到图象上.阅读全文
posted @ 2006-12-25 17:42 萧寒 阅读(11760) | 评论 (43) 编辑
摘要: 那时候一直没有去解决;前些日子修改了这个错误,今天整理了一下发出来;

这里是最新的代码,目前测试未发现其他的错误.
/Files/Chinasf/LLK1.41_FullSources_fix.rar (2006年7月14日)

开发历史:
http://chinasf.cnblogs.com/archive/2005/06/07/169767.html
阅读全文
posted @ 2006-07-14 22:34 萧寒 阅读(1151) | 评论 (10) 编辑
摘要: 经过长期的MES平台开发工作,整个对B/S ,C/S 的理解越来越模糊了.

2000年的时候第一次听到B/S系统的感觉,觉得很神秘和高科技,然后知道了,B/S就是(Browser/Server),而C/S就是(Client/Server).

工作2年后,感觉B/S和C/S各有长处,两者结合发挥是最好的.

现在,再次和一个学生讨论到B/S,C/S的架构时,忽然发现我对B/S的理解感觉总是怪怪的,难道说,任何能在浏览器里运行的程序,都是B/S吗?还是任何用HTML展现的UI都是B/S的?(这是对我自己提的问题)阅读全文
posted @ 2006-06-11 23:49 萧寒 阅读(3715) | 评论 (24) 编辑
摘要:
我经常要编写一些可序列化的类,用于存储配置,通过XML的属性标记可以很容易完成这些工作。但是大量的工作任务让我没有多少时间经常编写些‘体力代码’,于是就考虑如何简化这个工作。

那么XML文件是最终的结构,那么能否从XML结构通过某种工具还原为原始的序列化类代码呢?答案是肯定的。

详文见:http://chinasf.cnblogs.com/articles/xml2class.html
阅读全文
posted @ 2006-06-10 10:09 萧寒 阅读(1815) | 评论 (2) 编辑
摘要: 以上修改都是基于中文汉化版本修改的,请自行测试。另外再次感谢汉化工作者所做的辛勤劳动,让我工作起来得心应手!
详细讲解解决步骤,见文章.阅读全文
posted @ 2006-06-08 10:06 萧寒 阅读(6803) | 评论 (18) 编辑
摘要: 写一个C/S形式的基于TCP的微型网络游戏,以开源方式发布,做博客们自己的游戏;

模块:
游戏服务端,客户端

图形:
使用传奇2/3的资源

目标:
完成基本的网游架构,可多人上线并游走,对话,和简单的对战.

要求:
熟悉C#,熟练使用GDI+,了解二维坐标方面的图象编程,了解一些常见的图形效果算法,了解SOCKET通讯,了解DIRECTX,并且做过小游戏,下班有自己的业余时间,动手能力强,热爱游戏的同志们参加.

举手超过3人既申请团队博客并正式开始动工.

阅读全文
posted @ 2006-04-30 22:11 萧寒 阅读(934) | 评论 (17) 编辑
摘要: ISO文件格式被很多虚拟光驱软件和刻录软件支持,比较典型的有WinISO ,Alcohol 120%这些软件.有的时候需要自己制作一个ISO文件的话,则需要找专门的工具;其实要做一个ISO的文件可以很简单,就是把光盘的所有数据映射到文件,只要你可以读光盘的数据就可以生成它.但是,它不是单纯的把光盘上的文件都读入,而是要把整个磁盘信息读入,那么你必须访问磁盘数据,而不是文件;阅读全文
posted @ 2006-04-29 14:39 萧寒 阅读(3838) | 评论 (20) 编辑
摘要: 刚刚才用上C#2.0,原来是这么好用啊,迫不及待的想用熟它;

最近想到平台的体系,认为自己的脚本解释器是必不可少的,于是自己抄刀;花了将近一个星期,总算建设了一个有点象样的框架了。

基本设计:
1、基于C#2.0开发
2、通过反射动态调用LIB的方法
3、完全手写的SCRIPT解释器,不用.NET的编译器做脚本解释器(完全按行模式执行)
4、提供一个基础的控制台程序(SHELL),支持批处理模式反射调用方法
5、提供DEBUG模式的SCRIPT IDE,用于简单调试(目前解释器还有点小BUG,DEBUG功能目前还未完善)
阅读全文
posted @ 2006-01-24 00:21 萧寒 阅读(4000) | 评论 (22) 编辑
摘要: 今天才知道了个NeoSwiff ,是个FLASH sdk开发库,感谢“贺星河”在留言回复上给我的指示;

NeoSwiff 是COM组件,部分功能用dotnet封装,目前是‘免费’测试的。

语法采用c#的,文件后缀是.ccs ,Download NeoSwiff 0.80-Beta for Microsoft Visual Studio .NET 2003 安装完成后会自动配置工程向导,帮助索引等等工作,但是目前还是相当不稳定;基本上无法在 vs.net 中正常的编写代码,它严重影响vs.net的稳定性; 我不知道是不是和我安装的 ReSharper 有冲突。阅读全文
posted @ 2005-08-17 12:54 萧寒 阅读(2347) | 评论 (5) 编辑
摘要:

worldlingo的自动翻译服务功能免费而且相当强大,支持12种语言的相互翻译。
只是每次要开个IE浏览器使用,前几天刚好在做WEBRequest相关的程序,有个现成的Http请求库,就用它做了一个本地调用翻译服务的程序。

这个是我写的源码&执行文件/Files/Chinasf/TranslationOnline.Net.rar;很简单的片断,它的界面图见本文内。 阅读全文

posted @ 2005-08-16 17:13 萧寒 阅读(3733) | 评论 (33) 编辑
摘要: 随机创建一个2D地表 ,随机种子的分布很有意思,具体可以看算法;每个区域的色调是根据随机值来决定的。

外观如下:


源码下载


PS:今天很高兴认识了“灵感之源”,DX告诉了我不少好的URL;


下班了;2005年7月25日17:39:22阅读全文
posted @ 2005-07-25 17:38 萧寒 阅读(1665) | 评论 (7) 编辑
摘要: 好久没更新blog了;工作任务紧,本来是双休,结果变成了单休;唯一个星期天,还要补充睡眠...

这个星期的事了;早上迟到了,因为没赶上车;一到公司,头头就过来找我,我还以为会说我迟到的事儿,结果不是,原来他要我做一个文字识别的小程序;

因为信息源的关键信息被更新为gif图片了,原来是文本,所以很好处理,但是变成了图片后,就麻烦了;难怪他急忙找到我;

看了看源图片,发现比较好处理,因为是未变形的图形,毕竟要用图片显示文字具体信息,如果加入大量干扰码和特殊变形体会严重影响阅读,所以;这样的图片可以100%识别,就用原始匹配的算法.经过一个下午的努力,下班时加了10分钟班---搞定了;

虽然搞定了这个来源的图片文字识别,但是如果万一来源图片做了变形怎么办?我觉得这个问题很难解决,象腾讯网站的登陆,竟然都用上了中文字符,加了不少干扰码;要正确识别实在是太难了..

可以到本文内下载代码和执行文件:-)_~~阅读全文
posted @ 2005-07-24 05:46 萧寒 阅读(11138) | 评论 (29) 编辑
摘要: 算起来有半个月没有更新blog了,因为最近换了个工作;刚进去比较忙,今天是星期六我是到加班,其实这个班可以不加,所以有点时间上来发个笔记;

中午看到一个很有意思的题材,就是模拟飞机游戏的跟踪导弹,编写了一个测试程序,已经实现了按轨迹追踪目标,一直追到目标所在位置为止;感兴趣的朋友可以下载源码工程测试,如果要做个小飞机的游戏,那做个‘跟踪导弹’进去会很酷;

下载源码

运行效果就是在黑色的屏幕上分布一些点,分为‘黄’‘白’,‘白’点按轨迹移动,‘黄’点则是用于追踪‘白’点,最终击落‘白’点;不过在飞机游戏中,跟踪导弹可不能这么强哦,否则恐怕没人肯继续玩你的游戏了。阅读全文
posted @ 2005-06-25 15:22 萧寒 阅读(4335) | 评论 (10) 编辑
摘要: 关于起源,参阅[一个新游戏的思路;大家来说说看,觉得好的话,我做成游戏],游戏思路是出来了,但是太雷同了,连最终这个demo的效果也雷同;实在感觉遗憾;

该程序一样采用GDI+绘图,针对这样的小游戏演示,不必大动干戈动用Directx'坦克'了;

关于GDI+的绘图刷新率 ;到我本人电脑上(Nvidia GeForce4 mx 440 with AGP 8x 64M)是100左右;在公司的电脑上的情况就差多了,是主板集成显卡,这里可以看到测试记录[一个新游戏完成情况]

[为了避免2个图片影响首页,详细内容和源码介绍见笔记]阅读全文
posted @ 2005-06-09 22:36 萧寒 阅读(2661) | 评论 (17) 编辑
摘要: llk_clss_g.png
这个是游戏源码类视图;
到文章内下载[LLK1.41_FullSources.rar],今日做过最后一次修正;发布源码是因为工作上的事情,另外晚上也想好好休息休息;并且我也坚持源码共享。

删除了一些废代码,从最初到现在整个程序是动过多次手术的组合品;高手免看,因为这个东西不上您的档次;菜鸟也免看,以免乱码误人子弟阅读全文
posted @ 2005-06-07 21:57 萧寒 阅读(8938) | 评论 (42) 编辑
摘要: 连连看.NET 1.41 版本下载 (源码在本文内)
除路径提示外,其他未做任何改变,可能播放音乐列表有问题,暂时不做修正了,大不了关一下再开吧;

关于修正路径提示:
本来写这个游戏是为了做个迷宫求解的算法,结果被做成这个了;一直路径绘制还是用的寻路的算法,今天改了改,改成实际的连线路径,因为有2位说过寻路路径太不顺眼;

关于源码:
我相信真正的开发人员是不屑一顾的,毕竟这些只是很基本的一些算法罢了,关于我先前写了两片笔记『连连看路径求解的算法』『"连连看"算法笔记』,如果肯动手的估计已经做好了,实在思路不清楚的可以阅读我的代码,我加了详细的注解,包括考虑绘图的时候图块的安排;

开发记录:
连连看.net到今天为止,我已经努力满足了大多数用过的朋友的要求,如果还有什么不满意的,只能说我尽力了;连连看的核心无非就是寻折点(这个不同于寻路阅读全文
posted @ 2005-06-06 23:51 萧寒 阅读(2084) | 评论 (7) 编辑
摘要: 2005-6-5 21:38
连连看.NET v1.4版下载

针对声音做了管理,现在可以管理背景音乐了,在我的机器上可以播放"MP3,MIDI,WAV"三种格式均无问题,如果不能播放mp3,建议不添加mp3文件。针对这次更新,我整理了10来个midi音乐,游戏在初始化的时候会读取Music.list 文件,文件是按行保存的音乐路径,可以删除掉,手工改写内容也可以,也可以在“游戏的配置”中设定播放文件。
游戏是要玩过3层地图才算过关,但每次有朋友告诉我图片变暗了,是不是表示被连接了,其实这个暗色的是表示下一层的,但是随机化的时候发生数是一样导致都是同一位置,现在已经修改了这个问题,还有一点,刚玩的人不明白可能点了黑色块也出现标记,现在屏蔽掉了。

个别用户如果出现无法内存地址错误的问题,目前还没办法解决,一、是我测试条件不够,二、发布的时候通过MaxtoCode 1.16混淆过,但我自己通过朋友的测试阅读全文
posted @ 2005-06-05 13:06 萧寒 阅读(3634) | 评论 (27) 编辑
摘要: 该版本支持声音,我在绘图的速度上花了不少功夫,由于基于GDI绘图,所以很多效果是不好做,为了画个爆炸的图形,采用Blend_Lighten的算法,要保证速度,用了近一个小时,搞到这么晚...;

更新情况阅读全文
posted @ 2005-06-04 03:45 萧寒 阅读(3385) | 评论 (19) 编辑
摘要: 更新: 2005-6-3 16:39
关于寻路和绘制路径的一点点讲解;
这里帖个图,一看就会明白;为什么我的路径会拐多次

更新:2005-6-3 15:25
凌晨发布之后,马上就有朋友带来反馈意见,原来发布的我少添加一个Microsoft.DirectX命名空间导致程序无法运行,后应急改了一个无声音的版本;
这个是无声音版本的下载

经过一个中午的努力,优化了性能瓶颈(问题还是出在绘图上,而不是算法,.net的绘图速度太慢,没有办法,我只好牺牲内存换时间了,不过效果很好,速度提高好多倍);声音的播放我试了多种方法,包括使用axMediaPlayer,还有MCI 等等,最终还是决定继续采用directx库,因为我会马上制作基于directx的版本,我的开发平台是directx9.0c(2005),运行平台可能也需要dx9,无法运行的请使用无声音的版本.
这个是有声音版本的下载(需要Directx9.0以上版本支持) 阅读全文
posted @ 2005-06-03 00:14 萧寒 阅读(9691) | 评论 (64) 编辑
摘要: 今日因为一个同事说起,在原来的旧系统中使用指针做数据转换很方便,比如要把浮点数转化为数组,也或者是字符串的相互转换;当然,大家都知道c#中实现指针只需要写入unsafe,编译选项把“允许不安全代码”开启即可;他提出这种需求也不无道理,因为要和工控的下位机通讯,自行转换还是比较麻烦,使用指针的话将变的容易许多;具体的实现我编写了一个类,详细的作法见代码;实现了int/float/double转byte[]三种数据类型的互换,其实说白了就是C的翻版,呵呵;

【内详】阅读全文
posted @ 2005-05-28 00:40 萧寒 阅读(9221) | 评论 (11) 编辑
摘要: 功能和介绍参见:http://www.cnblogs.com/chinasf/archive/2005/05/26/162545.html
加入类的树,和索引;其他未做太多改变;
这里是源码和执行文件下载
阅读全文
posted @ 2005-05-26 11:48 萧寒 阅读(1552) | 评论 (6) 编辑
摘要: WMI 全称为:Microsoft®Windows®Management Instrumentation (WMI)
按微软的介绍大致如下:
WMI 是 Microsoft 主要的针对 Windows 的管理支持技术。在 WMI 之前,所有的 Windows 图形化管理工具都依赖于 Win32 应用程序编程接口(Application Programming Interfaces,APIs)来访问和管理 Windows 资源。在 WMI 之前,能够以编程方式访问 Windows 资源的惟一方法就是通过 Win32 API。这种情况使 Windows 系统管理员无法通过一种简便的方法利用常见的脚本语言来自动化常用的系统管理任务,因为大多数脚本语言都不能直接调用 Win32 API。通过提供一致的模型和框架,WMI 改变了这种情况 — 通过模型和框架,所有的 Windows 资源均被描述并公开给外界。最好的一点是,系统管理员可以使用 WMI 脚本库创建系统管理脚本,从而管理任何通过 WMI 公开的 Windows 资源!

我已经不记得阅读全文
posted @ 2005-05-26 01:29 萧寒 阅读(7413) | 评论 (29) 编辑
摘要: 最近把以前的一些小软件整理了一下,发现原来编写的asp反编码软件到如今已经有好几个版本了,也丢失过源码;今天把程序用.net的webservice模式重新编写了一个,这样一来,要集成该功能相当简单;

关于ASP反编码,我是国内第二位作者,第一位我现在不记得了,是个命令行的exe,可以解码被加密的脚本代码;我的第一个版本推出日期是2001.5月;那时候所在的工作室刚刚解散,这个版本是用vb 6编写的,有个比较恶心的bug,就是使用的是textBox,而textBox有字符数限制,所以太长了的代码无法反编码;另一个bug就是有些加密的代码有模拟加密关键字导致解密不完全。
阅读全文
posted @ 2005-05-23 21:27 萧寒 阅读(5953) | 评论 (15) 编辑
摘要: 常用排序工具类:
SortClass 的摘要说明。
对整形数组进行排序
可以重写每个排序算法支持多类型
注意:数组、对象,为传地址指针的形式
执行方法后会便改原始数组内容。

支持:
1、冒泡排序
2、选择排序
3、快速排序阅读全文
posted @ 2005-05-19 21:04 萧寒 阅读(7838) | 评论 (18) 编辑
摘要: 常用编码工具类,支持base64,md5,des,crc32
支持从文件到文件,从字符串到字符串的方式操作
阅读全文
posted @ 2005-05-18 09:40 萧寒 阅读(5350) | 评论 (6) 编辑
摘要: 今天到csdn有朋友短信问我如何写文件到图象内,反正是学习C#,就又写了一个这样的小工具;阅读全文
posted @ 2005-04-28 09:47 萧寒 阅读(1255) | 评论 (3) 编辑
摘要: /*******************************************
* 十进制转二进制函数
*******************************************/
public string dtb(string buf){
int[] temp= new int[20];
string binary;
int val=0,i=0,j;

/*先将字符转化为十进制数*/
try{
val = Convert.ToInt32(buf);
}catch{
val = 0;
}

if(val==0) {
return(val.ToString());
}

i=0;
while(v阅读全文
posted @ 2005-04-22 12:43 萧寒 阅读(2392) | 评论 (1) 编辑
摘要: 昨日又去关注了一下bindows,它的源码都是经过排版的,要看起来特别的吃力,比如象这样的句子:


1/*
2 * Bindows 1.10
3 * http://www.bindows.net/
4 * Copyright (c) 2003-2004 MB Technologies
5 *
6 * Bindows(tm) belongs to MB Technologies (Georgia, USA). All rights reserved.
7 * You are not allowed to copy or modify this code. Commercial use requires
8 * license.
9 */
10Array.prototype.indexOf=function(o){for(var i=0;i11return i;}
12return-1;};Ar阅读全文
posted @ 2005-04-22 11:27 萧寒 阅读(1384) | 评论 (5) 编辑
摘要: 最近加入一个公司,试用期间要我学习他们的旧系统,旧系统的代码是Visual Basic 6.0编写的,源码大概有10多万行,要一下子看完可不容易,并且还得出一个源码分析的文档。而最近的项目是新版本的开发,采用.Net的Visual C#开发,所以我边学c#边看代码;一是为了解决文档编写的问题,二是为了学习c#,就编写了一套专门分析vb Project的工具,其原理就是根据vb的工程文件解析所有的“变量、常量、API、过程、函数、事件”还有它们的类型“私有、全局”;由于时间关系,准备实现的“事件调用”分析并没有完成,但最后我的文档还是出来了。其中就有它的功劳。
软件的原型是参照 Aivosto 公司的"Aivosto Project Analyzer"制作的,它的功能很强大,只是它需要¥¥才能使用全部功能,否则只能导出txt文件,谁能有破解发我一份吧 :)
代码其实并不复杂,因为vb的语法很简单,都是行模式,虽然支持 & _ 连接符号,但是处理起来只需要替换掉即可。阅读全文
posted @ 2005-04-18 13:35 萧寒 阅读(3433) | 评论 (11) 编辑
摘要: 众所周知,WINForm 的 DataGrid 组件的功能强大而且灵活,作为一个数据库程序离开它可不行,但是dataGrid在设计期间采用“套用式样”的方式设计表格的外观并不够灵活,那有没有办法统一管理表格风格呢?答案是有。 阅读全文
posted @ 2005-04-18 09:48 萧寒 阅读(3520) | 评论 (9) 编辑
摘要: C# 中用代码压缩或修复MS Access 数据库阅读全文
posted @ 2005-04-17 13:19 萧寒 阅读(589) | 评论 (0) 编辑
摘要: win-form中的DataGrid,能否通过程序的方式锁定任意指定的行?比如第1,4行锁定,不能输入。但2,3行可以输入。
阅读全文
posted @ 2005-04-17 13:15 萧寒 阅读(735) | 评论 (3) 编辑
摘要: 不想显示为 CheckBox,显示文字 “是”或“否”.阅读全文
posted @ 2005-04-17 13:10 萧寒 阅读(765) | 评论 (0) 编辑
摘要: 1、怎么判断回收站是满还是空?
2、怎么清空回收站?
3、怎么还原回收站的单个文件和所有文件?阅读全文
posted @ 2005-04-17 13:07 萧寒 阅读(821) | 评论 (1) 编辑
posted @ 2005-04-16 11:02 萧寒 阅读(1751) | 评论 (5) 编辑