摘要:
javascript的跨域get很容易搞 定,但是跨域post就有点复杂了,今天无意看到大牛“张宴”的文章:http://blog.s135.com/ajaxcdr/,思路很不错,转载于此(其实这个思路要是看懂了,也很容易借助silverlight实现)最近的一个项目中,需要通过 JavaScript 提交表单数据到另一个域名下的PHP接口(因为数据较大,需要HTTP POST方式提交),并获取PHP接口的返回值,在页面无刷新、无跳转的情况下,更新div标签内的内容。 浏览器出于安全考虑,是不允许JavaScript代码进行跨域操作。JavaScript 和 AJAX 跨域访问分为两大类,一是
阅读全文
posted @ 2011-04-26 20:30
菩提树下的杨过
阅读(5968)
推荐(1)
摘要:
自从ms推出wcf以后,几乎没在web项目中用过webservice了,基本上都是以wcf host在iis中替代的。今天利用公司以前的web框架做一个新项目,里面大量使用了asmx,在开发过程中遇到了二个很少见的问题,记录如此,可能会帮助到遇到类似问题的同学们:一、在WebService中避免用DataTable做为参数类型,强烈推荐用DataSet来替换DataTable,否则会死得很惨场景如下:一个解决方案分三层:一层是Model,一层是WebService,一层是WebSiteWebService层中提供基本的查询方法,但是调用方法时,必须提供登录后的验证票据信息.Model层中定义了
阅读全文
posted @ 2011-04-23 22:13
菩提树下的杨过
阅读(2868)
推荐(0)
摘要:
先看效果:(这个只是原型,简陋了点)功能:双击图片或拖动右侧的滑块可实现图片的放大,鼠标按下不放可平移图片。应用场景:目前各地铁、医院、大型商场、机场均有单点触摸查询屏,用这个功能可以实现用户的简单自助地图导航。技术含量:这个,真木有!唯一要注意的是,flash中任何物体的"基准注册点"均为左上角的顶点,且没办法修改(注:所谓基准点是指不论是缩放,还是旋转,都是以这个点为参考原点。)这个很不爽,直接影响放大效果,那么本示例中的“以中心为基点放大”是如何实现的呢?请参看Flash/Flex学习笔记(51):3维旋转与透视变换(PerspectiveProjection)一文中
阅读全文
posted @ 2011-04-23 20:30
菩提树下的杨过
阅读(7322)
推荐(0)
摘要:
一天之内遇到了二个奇怪的问题,人品值最近有所下降啊。1、动软.Net代码生成器(就是园子里李天平的大作) 在win2008 r2下无法连接oracle数据库,而pl/sql developer、vs.net 2010等其它工具均能正常连接oracle db。解决办法:安装oracle x64的client,并正确配置ora文件即可。个人分析:pl/sql developer采用的是x86的32位client连接,vs.net2010估计也能以32位兼容方式连接oracle,但是生成器用的是x64位的client,所以导致无法对号入座。2、vs.net2008 模板丢失,新建项时,对话框窗口一片
阅读全文
posted @ 2011-04-21 21:51
菩提树下的杨过
阅读(2903)
推荐(0)
摘要:
如果你的机器上安装了odp.net,且确信machine.config也有类似以下结节:(64位+.net 4.0环境下,machine.config可能会有4份,分别对应于.net2.0/4.0的32/64位版本,要每个都检查过去哦) <DbProviderFactories> <add name="Oracle Data Provider for .NET" invariant="Oracle.DataAccess.Client" description="Oracle Data Provider for .NET&quo
阅读全文
posted @ 2011-04-19 13:32
菩提树下的杨过
阅读(31795)
推荐(5)
摘要:
园子里有一篇 Log4Net使用指南写得很详细,推荐给准备使用log4net的同学看看。如果你不想花太多时间研究,也可以按下面的步骤在5分钟内搞定:1、添加对log4net.dll的引用2、修改配置文件,以app.config为例,参考内容如下:<?xml version="1.0" encoding="utf-8" ?><configuration> <configSections> <section name="log4net" type="log4net.Config.Log4
阅读全文
posted @ 2011-04-17 20:41
菩提树下的杨过
阅读(1786)
推荐(2)
摘要:
虽然oracle,sqlserver都是关系型数据库,sql语句大部分也差不多,但是从sqlserver换到oracle还是有很多不适应的地方,本文旨在帮助广大初次接触oracle的.net程序员快速上手。一、安装oracle 11g 服务端(可选)1.1 为什么要安装服务端?理论上讲,本机只需要安装oracle客户端即可,但是很多时候本机有一个服务端学习起来会更方便。比如:数据库的导入/导出,数据库的创建等,均需要服务端。注:oracle的server真的很占内存,如果您的爱姬内存在2G以下,建议直接跳过本步骤吧.1.2 服务端的安装文件下载地址http://www.oracle.com/t
阅读全文
posted @ 2011-04-17 10:55
菩提树下的杨过
阅读(9782)
推荐(10)
摘要:
默认情况下,windows phone7开发工具只能在windows7上安装,我的本本上好不容易把win2008 r2以及相关软件安装好,总不能因为这个又把win7装回去吧,百度了一下,还真有人研究这个,把解决方法贴在这里备份:1、下载wp7开发工具安装文件,下载地址:http://www.microsoft.com/downloads/en/details.aspx?FamilyID=04704acf-a63a-4f97-952c-8b51b34b00ce&displaylang=en2、将下载到的文件(vm_web.exe)解压。方法:在命令行模式下,输入vm_web.exe /x
阅读全文
posted @ 2011-04-15 22:03
菩提树下的杨过
阅读(1357)
推荐(1)
摘要:
曾经以为TFS是微软产品中比较难安装的产品了,当我接触biztalk之后,我承认:我错了!安装准备:一、网络环境要能联网,且速度不能太慢(安装过程中会根据本机情况联机下载一些必备组件)二、硬件环境至少双核CPU,C盘空间搞大点(建议不低于60G,我是预留了80G),内存4G以上(最低不少于2G,不然安装的时候等得不耐烦想撞墙时,别说我没提醒你)三、软件环境1、安装windows 2008 R2(最好准备一个干净的系统)2、安装IIS (注:iis安装完以后的默认站点,千万别删除,配置BAM时会用到!如果您已经删除了,最好把IIS和谐了,重装!)3、安装SqlServer 2008 + SP1或
阅读全文
posted @ 2011-04-13 13:52
菩提树下的杨过
阅读(950)
推荐(0)
摘要:
关于flex中动态加载Module的文章,网上有很多,但多半是基于flex3的,如果在flash builder/flex4中按他们所提供的方法去做,最后将module加载到容器中时,会报:null object reference错误。经过多番摸索,发现只能在ready回调中,以Object这种基本类型使用,不能强制做任何类型转型,方能正常加载到容器,并与加载后的实例交互(虽然这样flash builder的IDE环境中,无法智能代码提示),原因不明!开始吧,先创建一个mxml Module,命名为:MyModule.mxml<?xml version="1.0"
阅读全文
posted @ 2011-04-10 20:12
菩提树下的杨过
阅读(6060)
推荐(1)
摘要:
虽然flex跟.net交互的首选是FluorineFx,但是如果在某些特定情况下(比如服务端是现成的,不允许修改,或者服务端开发方不懂FluorineFx为何物),这时webService还是挺有用的。WebService完全可以用"以BasicHttpBinding方式运行的WCF"代替。经过我的实际测试:对于基本类型(比如int,string,datetime以及它们对应的arrry以list),flex调用时能正确识别并“翻译”成as3中对应的int,String,Date以及Array类型,而复杂类型(比如自己在c#中定义的实体类或DataTable),flex调用
阅读全文
posted @ 2011-04-09 22:49
菩提树下的杨过
阅读(3428)
推荐(1)
摘要:
1、ModuleLoader在Asp.Net开发中,经常会把页面的公共部分封装成自定义控件ascx,以达到重用或动态加载的目的。在Flex4中MXML Module能达到类似的功能,可以把某些功能单独封装成在一个Module,然后利用ModuleLoader动态加载。每个MXML Module在Build时,会生成一个同名的swf(比如A.mxml会生成A.swf),但是不能单独运行。然后在主界面的mxml中,利用ModuleLoader组件来加载,示例代码如下:<?xml version="1.0" encoding="utf-8"?>&l
阅读全文
posted @ 2011-04-07 15:26
菩提树下的杨过
阅读(4076)
推荐(1)
摘要:
flex4中推荐使用spark组件来布局,所以在工具箱里把HDividedBox,VDividedBox这二个非常有用的东东给隐藏掉了,只能手动在source视图下手动写标签,如下:<?xml version="1.0" encoding="utf-8"?><s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library
阅读全文
posted @ 2011-04-07 10:52
菩提树下的杨过
阅读(5119)
推荐(0)
摘要:
用iphone或itouch登录过微薄的同学们想必都会发现:登录一些手机版网站(比如微薄时),表单中的输入框会自动放大,以方便用户输入,等输入完成后,页面会再次缩小到正常状态。在flex开发过程中,有时也会遇到一些输入项很多的表单,可以借鉴iphone上的这种体验,基本思路就是:将整个容器放大,以适应屏幕,然后将获得焦点的文本框定位到屏幕中央。下面是演示:当UserName与PassWord文本框获得焦点时,表单(其实就是panel)会自动放大,并重新定位,最终将获得焦点的文本框定位在屏幕中央,以方便输入。点击checkbox或login按钮时,会恢复正常大小。主要代码:<?xml ve
阅读全文
posted @ 2011-04-06 21:03
菩提树下的杨过
阅读(1843)
推荐(0)
摘要:
c#4.0中的dynamic早已不是新闻了,虽然内部用反射机制,略微会有一些性能上的额外开销,但是有些特殊场景还是很有用的,二害相权,取其轻吧(也正是因为这些动态编程特性,Python,Ruby这类动态语言能更方便的融入到.net平台中)using System;using System.Collections.Generic;using System.Dynamic;namespace DynamicTest{ class Program { public static void Main(string[] args) { dynamic obj = new ExpandoObject();
阅读全文
posted @ 2011-04-04 23:02
菩提树下的杨过
阅读(1120)
推荐(1)
摘要:
不变/协变/逆变,4.0中的这几个概念越念越象绕口令,如果单纯死记硬背,就算记住了,时间长了还是会忘记的。园子里已经有不少高手撰文写过这个话题:比如“装配脑袋”的NET 4.0中的泛型协变和反变 (2008年他就已经搞明白了这个概念)、偶像Artech的“C# 4.0新特性-"协变"与"逆变"以及背后的编程思想” 以及1-2-3的 协变(Covariance)和逆变(Contravariance)的十万个为什么这里只是从应用的角度,简单记录一下:从.net3.5开始,System命名空间里就定义了一个泛型委托,原型如下:public delegate T
阅读全文
posted @ 2011-04-04 21:30
菩提树下的杨过
阅读(2565)
推荐(1)
摘要:
webform中默认一个页面只能有一个form,有时submit按钮使用不当会产生一些奇怪的问题。比如这是一个网站的头部搜索部分,前端人员把“搜索”按钮用<input type="submit" />处理,然后在js中文本框里按下回车键时,自动调用doSearch()函数,该函数可能类似下面这样:(只是表达一下大概的意思)function doSearch(){ window.location="search.aspx?w=abc"; return false;}“搜索”按钮的click事件中,用类似 onClick="doSear
阅读全文
posted @ 2011-03-31 16:36
菩提树下的杨过
阅读(3173)
推荐(2)
摘要:
前几天看到有园友写了一篇“ flash查看对方qq是否在线 ”,正好今天有一个朋友搞flash全站,想使用这个功能,但是有些小要求,点击图标后,要求弹出QQ对话框,于是改进了一下:package { import flash.display.Sprite; import flash.events.Event; import flash.events.MouseEvent; import flash.globalization.StringTools; import flash.net.URLRequest; import flash.net.navigateToURL; import flas
阅读全文
posted @ 2011-03-31 16:00
菩提树下的杨过
阅读(2033)
推荐(0)
摘要:
今天在删除一个数据库时,一直报错,大意是:此数据库处理单用户模式,尚在连接当中,无法删除(既使将SQLServer停止后再启动也是如此)百度之后找到了解决办法,备份于此:USE [master]GO/****** Object: StoredProcedure [dbo].[killspid] Script Date: 03/28/2011 11:01:32 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGO --建一个存储过程,断开所有用户连接。 create proc [dbo].[killspid] (@dbname varchar(
阅读全文
posted @ 2011-03-28 11:04
菩提树下的杨过
阅读(11850)
推荐(3)
摘要:
场景:某页面用了js延时加载技术处理所有图片,以改善用户体验,但是有几个图片不想延时加载,要求把它们单独挑出来。研究了一下jQuery的API文档,搞掂了,jQuery真的很方便,贴在这里备份:<!doctype html><html> <head> <title>菩提树下的杨过</title> <script type="text/javascript" src="http://img.24city.com/js/jquery-1.4.3.min.js"></script&g
阅读全文
posted @ 2011-03-24 15:27
菩提树下的杨过
阅读(14539)
推荐(1)
摘要:
public struct Point { private int m_x, m_y; public Point(int x, int y) { m_x = x; m_y = y; } public override string ToString() { return string.Format("{0},{1}", m_x, m_y); } }上面是一个值类型的定义,下面创建一个实例,用在控制台上输出一些信息: Point p = new Point(1, 1); Console.WriteLine(p);这与 Point p = new Point(1, 1); Co
阅读全文
posted @ 2011-03-21 23:36
菩提树下的杨过
阅读(711)
推荐(1)
摘要:
如题,在FluorineFx的实时视频交互应用中,如果页面长时间不动,可能会导致flash中的NetConnection对象断开连接,其原因我没有深入研究,不过应该能猜出大概(以下结论未必证实,不保证一定正确):FluorineFx是做为一个HttpModule而嵌入asp.net网站中的,如果长时间不动,页面与服务器之间的session过期可能会导致FluorineFx与客户端的连接也一并关闭。解决办法:在嵌入flash的页面中,随便用ajax定时(比如每5分钟)服务端随便发点数据过去(哪怕只是一个字符也行),以证明自己还活着。另外在使用中还发现一个现象:通常我习惯于把FluorineFx的
阅读全文
posted @ 2011-03-16 23:27
菩提树下的杨过
阅读(1357)
推荐(1)
摘要:
俗话说:拳不离手,曲不离口。学过的技能不用,放长了就生疏了,今天以前的同事问我:用户改变浏览器窗口尺寸时,flash中的图片如何重新定位于4个角上。花了近一刻钟才回忆想来:stage有Resize事件,呵呵代码如下:1.先把加载图片的逻辑封装一下package { import flash.display.Sprite; import flash.display.Loader; import flash.display.LoaderInfo; import flash.net.URLRequest; import flash.events.Event; import flash.display
阅读全文
posted @ 2011-03-12 15:10
菩提树下的杨过
阅读(2490)
推荐(1)
摘要:
其实这也是面试中被问倒的问题:(贴在这里纪念一下,注:只是简单的罗列,详细原理及分析,请参阅《CLR Via c#》第三版相关章节)1、利用线程池发起异步操作using System;using System.Threading;namespace Asynchronous{ class Program { static void Main(string[] args) { Console.WriteLine("主线程:准备发起一系列异步操作..."); ThreadPool.QueueUserWorkItem(ComputeBoundOp, 5); ThreadPool.
阅读全文
posted @ 2011-03-07 21:16
菩提树下的杨过
阅读(1129)
推荐(2)
摘要:
做程序员以来,一直都是在创业型小公司呆着,手下的程序员最多也就三俩号人,但是老板的各种要求和任务都要快速满足,很多技术还不及深钻就要去赶紧学习其它东西,所以造成了现在技术层面:“广度有,深度无”的尴尬局面,今天去某公司面试了,被问一些我以往工作中没用到(或很少用)的知识点,基本上都是凭经验当场猜的,记在这里备忘:1、在一个同步的asp.net页面(即常规aspx页面)时,如果一个Button点击去发起一个异步操作,页面会不会有异常?因为我之前在asp.net页上有试过异步查询,也是类似回调的机制处理,当时页面能正常跑的,没报异常,所以我说不会报异常。回来后测试了一下:using System;
阅读全文
posted @ 2011-03-04 20:30
菩提树下的杨过
阅读(2038)
推荐(5)
摘要:
obj-c中有一类对象:NSArray,NSDictionary,NSString,NSNumber,NSDate,NSData以及它们的可变版本(指NSMutableArray,NSMutableDictionary...这一类) ,都可以方便的将自身的数据以某种格式(比如xml格式)序列化后保存成本地文件。示例代码:NSArrayTest.h#import <Foundation/Foundation.h>#define FILE_NAME @"/tmp/data.txt"@interface NSArrayTest : NSObject { }-(void
阅读全文
posted @ 2011-03-03 14:42
菩提树下的杨过
阅读(15168)
推荐(0)
摘要:
先承认我是标题党,因为在obj-c的世界中,官方根本没有"接口"与"泛型"这样的说法。 不过在obj-c中有二个与之接近的概念"非正式协议(interface)"与"正式协议(protocol)"。非正式协议在obj-c中的关键字虽然也是interface,但是这个跟c#中的接口(interface
阅读全文
posted @ 2011-03-02 21:09
菩提树下的杨过
阅读(17607)
推荐(2)
摘要:
今天在园子里看到了一篇牛文“Objective-C 2.0 with Cocoa Foundation--- 5,Class类型,选择器Selector以及函数指针 ”,讲得十分精彩,忍不住把它的代码加上注释整理于此,以便日后查看。个人体会:obj-C中的“Class类型变量”比c#中的Object基类还要灵活,可以用它生成任何类型的实例(但是它又不是NSObject)。而选择器SEL与函数指针IMP,如果非要跟c#扯上关系的话,这二个结合起来,就点类似c#中的反射+委托,可以根据一个方法名称字符串,直接调用方法。"牛"的基类 Cattle.h#import <Fou
阅读全文
posted @ 2011-02-28 21:41
菩提树下的杨过
阅读(10183)
推荐(2)
摘要:
C#中可以通过反射分析元数据来解决这个问题,示例代码如下:using System;using System.Reflection;namespace Hello{ class Program { static void Main(string[] args) { if (IsMethodDefined(typeof(Utils), "HelloWorld")) { Console.WriteLine("Utils类中有方法HelloWorld"); } else { Console.WriteLine("Utils类中没有方法HelloWor
阅读全文
posted @ 2011-02-28 14:38
菩提树下的杨过
阅读(4957)
推荐(2)
摘要:
在c#中要扩展一个现有类很容易,比如这样: public static class Utils { public static void PrintToConsole(this string strSrc) { Console.WriteLine(strSrc); } }这样就为String类添加了一个PrintToConsole的方法,使用方法如下: class MainClass { public static void Main (string[] args) { "Hello World!".PrintToConsole(); } }在objective-C中,也有
阅读全文
posted @ 2011-02-26 21:34
菩提树下的杨过
阅读(2146)
推荐(1)
摘要:
今天在看书上的一段代码时,发现NSString实例化时,有时用的是initWithFormat方法,有时用的是stringWithFormat,到底应该如何选择呢?区别:1、initWithFormat是实例方法只能通过 NSString* str = [[NSString alloc] initWithFormat:@"%@",@"Hello World"] 调用,但是必须手动release来释放内存资源2、stringWithFormat是类方法可以直接用 NSString* str = [NSString stringWithFormat:@&qu
阅读全文
posted @ 2011-02-25 21:20
菩提树下的杨过
阅读(31049)
推荐(5)
摘要:
注:这是《Objective-C基础教程》一书上的实例,但是原书限于篇幅,分析得比较简单,初次阅读看得比较费劲,这里展开详细讨论一下。场景:有二个类Car和Engine,即“汽车”和“引擎”。先来看最初的版本:Engine.h#import @interface Engine : NSObject@property int flag;@end // EngineEngine.m#import "Engine.h"@implementation Engine@synthesize flag;- (NSString *) description{ return ([NSStri
阅读全文
posted @ 2011-02-24 23:02
菩提树下的杨过
阅读(1758)
推荐(0)
摘要:
如果一个对象的生命周期显而易见,很容易就知道什么时候该new一个对象,什么时候不再需要使用,这种情况下,直接用手动的retain和release来判定其生死足矣。但是有些时候,想知道某个对象在什么时候不再使用并不那么容易。如果下面的代码,看上去非常简单:Sample.h类接口部分#import < Foundation / Foundation.h >@interface Sample : NSObject {}-(NSString*) toString;@endSample.m 类实现部分#import "Sample.h"@implementation Sa
阅读全文
posted @ 2011-02-24 15:44
菩提树下的杨过
阅读(12211)
推荐(1)
摘要:
obj-c本质就是"改进过的c语言",大家都知道c语言是没有垃圾回收(GC)机制的(注:虽然obj-c2.0后来增加了GC功能,但是在iphone上不能用,因此对于iOS平台的程序员来讲,这个几乎没啥用),所以在obj-c中写程序时,对于资源的释放得由开发人员手动处理,相对要费心一些。引用计数这是一种古老但有效的内存管理方式。每个对象(特指:类的实例)内部都有一个retainCount的引用计数,对象刚被创建时,retainCount为1,可以手动调用retain方法使retainCount+1,同样也可以手动调用release方法使retainCount-1,调用rele
阅读全文
posted @ 2011-02-23 13:26
菩提树下的杨过
阅读(4464)
推荐(0)
摘要:
“正确进入DFU模式”对于果粉新手来说是一个很难掌握的技巧(越狱、降级都要用到它),特别是时间的把握上,多按一会儿不行,少按一会儿也不行,从网上看到这个办法,觉得不错,转载于此:1、连接你的iphone到电脑2、先右击“我的电脑”—>属性—>硬件—>设备管理器—>通用串行总线控制器,你会看到里面有个“Apple Mobile Device USBDriver&q
阅读全文
posted @ 2011-02-11 21:54
菩提树下的杨过
阅读(14632)
推荐(0)
摘要:
先来定义一个Human父类定义部分:注:+(void)前的加号,就表示这一个是类方法(static 方法),而-(void)表示这是一个实例方法实现部分:注意:下面的 -(id) init 即为构造函数。对应的,还有一个-(void)dealloc方法用来释放资源(类似于析构函数或c#中的dispose()方法)-注:dealloc方法以后在内存管理中详细学习,这里先不管它。再来定义一个Woman子类定义部分:实现部分:注意下面的:setMarried 与 Married 就是obj-C中属性的标准写法(当然以后还能看到其它简化的写法)main方法中的调用:运行结果:2011-02-09 17
阅读全文
posted @ 2011-02-09 17:11
菩提树下的杨过
阅读(3614)
推荐(0)
摘要:
上一篇展示了如何用传统的“面向过程编程方法”,实现画“矩形”、“圆”、“椭圆”,这一篇看下如何改用OOP的方法来实现:因为要用到“颜色”以及“矩形区域”二个枚举,先把他们抽出来单独放在CommDef.h文件中然后再定义基类Shape,注意:在obj-C中,定义一个类通常分成二部分,一部分是".h"的文件,用来申明类有哪些成员(也称为类的定
阅读全文
posted @ 2011-01-26 16:08
菩提树下的杨过
阅读(2202)
推荐(0)
摘要:
上一篇中,所有代码都是放在同一个文件main.h中的,这显然不是一个好的方式,代码多了以后,看着就头大。可以将其进行拆分:1、将所有枚举、结构的定义单独放在一个文件ShapeDef.h中2、将所有方法都放在另一个文件ShapeMethod.h中3、最后在主文件Main.m中使用ShapeMethod.h注:ShapeDef.h,ShapeMethod.h,Main.m三个文件均处于同一个项目的同一个目录中。
阅读全文
posted @ 2011-01-26 12:08
菩提树下的杨过
阅读(1351)
推荐(0)
摘要:
Console窗口的运行结果:2011-01-25 13:49:05.978 HelloWorld[734:a0f] drawing a circle at (0,0,10,30) in red2011-01-25 13:49:06.016 HelloWorld[734:a0f] drawing a rectangle at (30,40,50,60) in green2011-01-25 13:49:06.018 HelloWorld[734:a0f] drawing an egg at (15,18,37,39) in blue
阅读全文
posted @ 2011-01-25 13:48
菩提树下的杨过
阅读(2302)
推荐(0)
摘要:
从雨痕老大的博客上转来的 http://www.rainsts.net/article.asp?id=1066读书人偷书不算窃 :)1. 文件CMD + N: 新文件CMD + SHIFT + N: 新项目CMD + O: 打开CMD + S: 保存CMD + SHIFT + S: 另存为CMD + W: 关闭窗口CMD + SHIFT + W: 关闭文件2. 编辑CMD + [: 左缩进CMD + ]: 右缩进CMD + CTRL + LEFT: 折叠CMD + CTRL + RIGHT: 取消折叠CMD + CTRL + TOP: 折叠全部函数CMD + CTRL + BOTTOM: 取消
阅读全文
posted @ 2011-01-25 10:22
菩提树下的杨过
阅读(185546)
推荐(29)