All Posts (292) 292


高效程序猿之(四)VS2010其他技巧

1.快速打开项目文件夹 一种方法是在开始页面上,对项目点右键,选择“打开所在的文件夹” 另一种方法,是在项目打开后,对解决方案或项目点右键,同样有个“在Windows资源管理器中打开文件夹” 2.重命名 如果要对代码中的一个变量或类名进行重命名,就需要更改所有用到这个类型的语句。手动一个个更改显然会蛋疼。VS给了我们一种高效的重命名办法: 在类型名称上点右键,重构,重命名。更快的办法是将光标点到类型名称上,然后按下Ctrl+R,R 这样,VS就会自动查找和替换所有被引用的名称 3.快速输入相同数据 大家可能知道Word中的矩形选择框,同样,VS2010中也有这个功能,并且现在可以选择0字符宽度的选择框用于输入内容。方法是按住ALT,然后按住鼠标左键选择。 例如下面的实例,我希望给每个标记之前,都加上 ,我可以按住ALT+鼠标左键,选中第一个到最后一个...

Visual Studio

ASP.NET使用ashx输出图片

以前我们在.NET里动态输出图片,往往是建一个aspx,把里面的html代码都删光,然后在cs代码里用response输出一个图片类型的stream。之后指定Image控件的url为这个aspx就行。但是,更好的做法是用ashx。 先简单介绍一下ashx: ashx是ASP.NET里的web handler,用来处理Http请求。因为它不是aspx,所以它无需走aspx的生成过程,避免了事件、控件树等的处理,因此性能比aspx好,并且编写ashx只需要关心request的处理,不用关心web界面上的表现,有点类似JavaEE里的Servlet。动态生成图片这样的事用ashx做再好不过啦! 以我网站Web App里二维码生成器为例。原先生成图片的aspx后台代码如下: protected void Page_Load(object sender, EventArgs e) {...

ashx stream Image

C#将窗口最小化到系统托盘,并显示图标和快捷菜单

1. 拖一个notifyIcon和一个contextMenuStrip过来,他们会出现在窗体设计器的最下方: 然后完成你的menu,它暂时会出现在form上,但没关系,运行的时候不会显示。 2. 给notifyIcon设置icon属性,这一步很重要,不然系统托盘处不会有图标。然后将ContextMenuStrip属性设置为刚才的那个快捷菜单。 3. 现在运行程序的时候,任务栏右下角系统托盘处就会有我们的图标和菜单: 4. 现在我们来处理最小化隐藏和还原的问题: 首先要将form的ShowInTaskBar属性设为false,这样它就不会在任务栏中显示。但如果现在最小化,屏幕左下角仍然会有一条细小的标题栏。这里我们需要手工处理一下: 在form的resize事件里这样写: private void frmMain_Resize(object sender, Ev...

C# WinForm Icon

Windows 7 64位版IIS不能连接Access数据库的解决办法

今天我把系统换成了64位版的Windows7,结果配完IIS打开网站测试的时候,顿时菊花一紧:未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序。 查了半天发现是IIS跑在64位环境下引起的。而64位下,是木有Access数据库的驱动的(包括Excel也不行)。 解决办法是:在目标网站的应用程序池中选择高级设置,然后将启用32位应用程序设置为true,重启IIS即可!...

64 bit ACCESS IIS

ASP.NET Forms验证实现只有特定目录才要求登录

哥最近准备把网站的登录模块重写,采用ASP.NET自带的Forms验证方式。一直觉得微软的登录肯定要比自己写程序判断Session神马的要完善。 我的场景是这样的: 一个普通的网站,分为前台和后台。前台是给Internet访客看的,无需登录。后台是给管理员发表文章和管理网站的,要求登录才能访问。 这样的网站我们通常这样设计目录结构: Web -----网站根目录 {     Console ----- 后台管理入口     {         Default.aspx ----- 登录页(一般叫做Login.aspx)         Welcome.aspx ----- 欢迎页(登录成功就跳转到此页)         ….aspx -----各种后台页面     }     Default.aspx ----- 网站首页(无需登录就能看)     …..aspx...

Forms 登录 验证

当using遇到return

C#一大牛逼之处就是using语句简化了我们的程序。它的作用是在using结束后,立即释放被引用的资源。实质其实是调用被引用对象的Dispose()方法。这也是为喵被using的类型一定要实现IDisposable接口。虽然在.NET和JAVA里,程序员都不用关心手动释放内存的问题,但我认为在使用资源的时候加上using,是一种良好的习惯。有时候如果你不释放资源的话,可能会发生独占的问题。 好了,扯多了,话说回来,看看我今天遇到的一个有意思的问题。 今天心血来潮,想检验一下自己的代码,于是给项目启用了代码分析,用的是“Microsoft最少量建议规则”。结果以下代码产生了编译警告: public DataSet ExecuteDataSet(DbCommand cmd, Trans t) { cmd.Connection = t.DbConnection; cm...

using

Web.Config中保存特殊字符

最近遇到个问题,需要在web.config里保存一些特殊字符。比如“&”。但web.config,包括其他config都是XML格式的,不可以直接保存&,"&"在XML中是转义字符的标志,所以保存这个字符,需要经过转义。下面是常用字符的转义表。大家自己看一下~ 字符 转义 < > & & ' ' " "...

config

高效程序猿之(三)VS2010快捷键

上一讲介绍了几款插件,碉堡了。今天我们来回顾一下VS2010的快捷键。下面是最常用的快捷键,大家自己看一下: 按键 功能 Ctrl+K,C 注释选中的代码 Ctrl+K,U 取消注释 Ctrl+K,F 整理代码 Ctrl+U 全部小写 Ctrl+Shift+U 全部大写 Ctrl+H 查找与替换 Ctrl+Shift+B 编译 Ctrl+J 智能提示 Ctrl+R,R 重命名 Ctrl+R,E 封装字段 F12 转到定义 F4 属性...

Visual Studio 快捷键 Productivity

GridView不使用数据源控件做分页

ASP.NET中的GridView如果绑定数据源控件(比如SqlDataSource),那么分页只要设置AllowPaging属性为true,并且设置PageSize就可以自动实现分页。但很多时候,我们需要手工给GridView绑定数据,这时候再设置AllowPaging的话,它绝对不会理你。所以我们需要手工给它编写分页事件: 其实很简单,大家自己看一下就明白了: private void FetchData() { DataTable dt = optLeaveword.GetList(0, GeekStudio.ORM.DAL.Leaveword.OrderBy.IdDesc); gvLeaveword.DataSource = dt; gvLeaveword.DataBind(); } protected void gvLeaveword_...

GridView Paging

高效程序猿之(二)VS2010优秀插件

上一讲介绍了VS2010的模板代码生成。今天我们来看一下VS2010的插件功能。优秀的插件可以显著提高程序猿的生成效率。这个是2010版的新功能,用户可以通过安装插件来拓展Visual Studio的功能。 在VS2010的菜单上,你可以找到Extension Manager的按钮,点击以后会弹出浏览和安装插件的对话框。 我们可以去在线的库中寻找插件。在线安装完成后需要重启VS才能生效。如果安装的是本地插件,则要关闭VS后再安装,不然也是要重启的。 下面介绍几个我常用的插件。 1. Indent Guides 这款插件的作用是给代码块增加对齐线,以标识匹配的花括号,让程序猿很容易的找到对应的语句块。 2. PowerCommands for Visual Studio 2010 这是微软官方的插件,它可以给你的右键菜单增加很多实用的功能。比如对整个Project整理u...

Visual Studio Plugin Productivity