Jeet

专注于.NET技术
posts(37) comments(230) trackbacks(8)
  • 博客园
  • 联系
  • 订阅 订阅
  • 管理

与我联系

  • 发短消息

搜索

 

常用链接

  • 我的参与
  • 我的新闻
  • 最新评论
  • 我的标签

留言簿

  • 给我留言
  • 查看公开留言
  • 查看私人留言

随笔分类

  •  .NET相关(18)
  •  Others(5)
  •  PMP之路(4)
  •  Web Service&Interoperability (8)

随笔档案

  • 2007年11月 (2)
  • 2007年9月 (1)
  • 2007年8月 (1)
  • 2007年7月 (2)
  • 2007年4月 (3)
  • 2006年10月 (1)
  • 2005年6月 (3)
  • 2005年5月 (1)
  • 2005年4月 (6)
  • 2005年3月 (5)
  • 2005年2月 (3)
  • 2005年1月 (1)
  • 2004年10月 (1)
  • 2004年9月 (2)
  • 2004年7月 (1)
  • 2004年6月 (2)
  • 2004年4月 (1)

友情链接

  • 我的最爱--小美人邱嘉桐


积分与排名

  • 积分 - 56941
  • 排名 - 1077

最新评论

  • 1. re: 关于ContextSwitchDeadlock
  • 非常好, 谢谢 楼主
  • --sknice@163.com
  • 2. re: 移动梦网的“陷阱”
  • 我讨厌梦网.都是垃圾.我昨天中着了被抠了十元.我日他妹妹.我就不明白为什么所以手机上都有那个梦网菜单那.还没办法去掉.看来一定要把梦网黑掉.我 带表所以受害的兄弟姐妹.求您了黑客老大!.
  • --piaoguo
  • 3. re: Oracle 9.2下的“System.Exception: System.Data.OracleClient requires Oracle client software version 8.1.7 or greater”
  • mark
  • --孤剑
  • 4. re: Oracle 9.2下的“System.Exception: System.Data.OracleClient requires Oracle client software version 8.1.7 or greater”
  • @胡丹
    把IIS停了再重启不行吗?
  • --Jeet
  • 5. re: Oracle 9.2下的“System.Exception: System.Data.OracleClient requires Oracle client software version 8.1.7 or greater”
  • 我的是Windows 2003 server ,按你的步骤修改后IIS启动不了了,报‘另一个程序正在访问此文件,进程无法访问’,刚重启玩的电脑,我确定没开其他应用程序的。望指教~
  • --胡丹

View Post

Visual Studio.Net鲜为人知的技巧

    我们每天都使用VS.Net进行C/S系统、B/S系统、Smart-Client应用的开发,无论你是熟练的程序员还是刚学.net的新手,都是安装了VS.Net进行开发,但你有没有想过怎样利用工具提供的一些便利功能,来提高我们工作的质量和效率呢。本文收集了VS.Net中一些浅为人知的技巧与功能,希望能对帮助你更好的利用工具。

1.   快速切换选项卡

    在应用的开发中,我们常常会开打多个窗体设计器、类文件与其它类型的文件,文件一多用鼠标切换时通常要进行点击几次,可能通过快捷键Ctrl+Tab或Shift+Ctrl+ Tab进行切换。也可以通过拖拽文件的标题对其进行重新排列。

2.   多文件查看

    在VS.Net中,你可以同时查看两或多个文件,只需在打开选项卡中把想要查看的文件拖至IDE的右边或下边,你就可以垂直或水平平铺的方式查看文档。  
 
 
 

3.   查看同一文档的不同部分

    当需要对同一文档的不同部分代码的时候,我们可以通过拆分代码窗口来查看代码的不同部分。将鼠标移动到代码窗口右上角滚动条的上方,出现双向箭头时向下拖至你想拆分的位置,现在可以通过移动滚动条来查看代码的不同部分。  
   

 
4.   管理重复使用的代码片断

    在编写代码时,有一些常用的代码片断会在不同的项目或解决方案中重复使用,如文件创建说明、数据库连接字串等。可以使用工具箱利用以下方法进行重用:
    选择要复用的代码片断;
    将选择的代码拖到工具箱的常规卡,工具箱在会显示“文本……”(可以右键点 击从菜单中选择重名命名进行改名);
    使用时,在插入代码的位置单击鼠标,然后在工具箱上双击要插入的代码(也可以把代码片断拖至要插入的位置)。
 
 

5.   使用渐进式搜索

    代码的搜索方法,VS.Net可以使用编辑菜单中的“搜索”进行特定字符串的搜索,也可以使用“查找符号”来查找特定的方法或属性,但“渐进式搜索”可能就少有人知了,“渐进式搜索”可以根据你键入的字符中在当前打开的代码中进行查找。使用快捷方式Ctrl+I,在代码窗口出现一个向下的箭头加望远镜图案,IDE下面的状态栏显示“渐进式搜索”字样,键入要查找的字符,自动定位至字符出现的位置,查找下一个字符出现位置可以再按Ctrl+I,上一个字符出现位置可以按Shift+Ctrl+I继续进行查找。
 



6.   枚举容器中的控件,实现控件事件处理

    我们知道,要在应用程序中使用事件,必须提供一个事件处理程序(事件处理方法),这通常用委托来实现。但当想对某个容器中的同类控件的相同事件都实现相同的处理方法时,可能通过枚举容器中的控件并指定相关委托来实现事件的处理。或许你会说,干吗要说得这么复杂,我可以在控件的属性中指定事件处理方法来实现,但当容器中的控件很多,或者在设计过程中加入了新的控件,逐个指定毕竟是很麻烦的一件事。
    如下图所示,在应用中有两个文本框,我想指定两个文本框(用户名与密码)的Enter、Leave与Validating事件,当文本框获得焦点时改变其背景色,当离开时还原为系统文本颜色,并用Validating方法检查文本框内容是否为空,为空时用ErrorProvider显示错误信息。
 
 
    我通过方法AddEventHandler来枚举窗体中的控件,当它是文本框时指定事件的委托,代码如下:
    /**//// <summary>
        
/// 枚举容器中的控件,并增加文本框的事件处理委托
        
/// </summary>
        
/// <param name="pnl">container</param>

        private void AddEventHandler(Control pnl)
        
{
            
foreach(Control ctrl in pnl.Controls)
            
{
                
if(ctrl is TextBox)
                
{
                    ctrl.Enter
+=new EventHandler(this.txt_Enter);
                    ctrl.Leave
+=new EventHandler(this.txt_Leave);
                    ctrl.TextChanged
+=new EventHandler(this.txt_TextChanged);
                    ctrl.Validating
+=new CancelEventHandler(this.txt_Validating);
                }

                
if(ctrl.HasChildren)
                    AddEventHandler(ctrl);
            }

        }



        
/**//// <summary>
        
/// 实现文本框的Enter事件处理方法
        
/// </summary>
        
/// <param name="sender"></param>
        
/// <param name="e"></param>

        private void txt_Enter(object sender,System.EventArgs e)
        
{
            TextBox tb
=(TextBox)sender;
            tb.BackColor
=Color.BlanchedAlmond;
        }


        
/**//// <summary>
        
/// 实现文本框的Leave事件处理方法
        
/// </summary>
        
/// <param name="sender"></param>
        
/// <param name="e"></param>

        private void txt_Leave(object sender,System.EventArgs e)
        
{
            TextBox tb
=(TextBox)sender;
            
            tb.BackColor
=Color.FromKnownColor(KnownColor.Window);
        }


        
/**//// <summary>
        
/// 实现文本框的Validating事件处理方法
        
/// </summary>
        
/// <param name="sender"></param>
        
/// <param name="e"></param>

        private void txt_Validating(object sender,System.ComponentModel.CancelEventArgs e)
        
{
            TextBox tb
=(TextBox)sender;
            errorProvider1.SetError(tb,
"");
            
if(tb.Text.Length==0)
            
{
                errorProvider1.SetError(tb,
"Please input any text!");
                tb.Focus();
            }

        }

然后在Form1的构造函数中增加AddEventHandler(this)语句:

    public Form1()
        
{
            
//
            
// Windows 窗体设计器支持所必需的
            
//
            InitializeComponent();
        
            AddEventHandler(
this);
        }

程序运行时文本框获得焦点时显示不同的背景色: 
 

失去焦点时如果文本框内容长度为零,显示提示信息:


同样的道理,你可以使用上面的方法对容器中的其它控件指定不同的事件处理方法。


posted on 2005-04-10 00:55 Jeet 阅读(7567) 评论(27)  编辑 收藏 网摘 所属分类: .NET相关

View Comments

465711
#1楼   回复  引用    
好文!!
2005-04-10 09:16 | notus[未注册用户]
#2楼   回复  引用  查看    
好文章 收藏了
2005-04-10 09:56 | 永恒瞬间      
#3楼   回复  引用  查看    
好
2005-04-10 10:52 | 阿哟      
#4楼   回复  引用  查看    
用多了自然就会发现很多好使的功能。支持!
2005-04-10 17:49 | 妖居      
#5楼   回复  引用  查看    
真是不错,支持!!!
2005-04-10 20:04 | Neter      
#6楼   回复  引用  查看    
不错
2005-04-11 14:22 | cloud      
#7楼   回复  引用    
补充一下, 不是Ctrl+I 而是 Ctrl+Alt+I, 至少在我的电脑上是这样的
2005-04-12 22:58 | bx
#8楼   回复  引用  查看    
不错,但是6应该不算visual studio .net IDE的技巧。
可以算一种设计模式。
2005-04-13 10:53 | Vince Yuan      
#9楼   回复  引用    
yi ban ban le.
2005-04-18 18:37 | jsut me
#10楼   回复  引用  查看    
不错,有些技巧没用过
2005-05-12 20:11 | roky      
#11楼   回复  引用    
登录不了,密码忘了。
不知道为什么在VB.NET中,下面这条语句会报错
If Label2.ForeColor = System.Drawing.Color.Black
说这里不能用等号,???请赐教。
2005-11-08 09:12 | I'm Jane[未注册用户]
#12楼[楼主]   回复  引用  查看    
Hi Jane,try this statement:

If Label1.ForeColor.ToKnownColor = KnownColor.Black Then
2005-11-08 12:33 | Jeet      
#13楼   回复  引用    
高手就是高手,为什么我不知道呢?!郁闷!这下行了.
我留言时,没有让我输入密码呀,下次当然就不知道密码了,这是怎么回事?
2005-11-14 19:34 | I'm Jane[未注册用户]
#14楼   回复  引用    
请教:在使用连接字符串连接数据库的时候,显示sa登录失败,我将身份验证方式改为混合模式,头一次行了,后来不知道是不是又改别的又登录失败.sa的登录密码还无法在sql server的企业管理器中修改,这是为何?
先谢了!
2005-11-14 19:41 | I'm Jane[未注册用户]
#15楼[楼主]   回复  引用  查看    
To Jane:

想修改SQL的sa密码的话,你可以用查询分析器登录SQL Server,然后在master库下运行存储过程sp_password,输入相应的参数就可以更改你的sa密码了。
至于说连接串的连接出错,估计还是写法的问题,你认真核对一下。
2005-11-14 20:13 | Jeet      
#16楼   回复  引用    
可以了.为什么不能在企业管理器中修改密码呢?最根本的问题是不知道sa原来的密码,不记得设置了密码,在"企业管理器"中的"安全性"的sa中,右键选择"属性"可以更改密码的,但是每次改完再打开时还是原来的密码,新密码不能生效.
2005-11-14 20:41 | I'm Jane[未注册用户]
#17楼[楼主]   回复  引用  查看    
To Jane:
如果是在混合模式下应该是可以改的,不行的话真的不明白啦:)
2005-11-14 22:08 | Jeet      
#18楼   回复  引用    
我第一次使用VS.net。在使用过程中我无法打开*.vbproj和*.sln。
系统提示我“无法打开项目文件,问题很可能是因为本地web服务器上没安装所需组件,运行vs.net安装程序并添加web开发组件”;请问我遇到这种情况该怎么办,还请高手门多多指点,我在在此先谢谢啦
2005-11-23 12:49 | 初学者[未注册用户]
#19楼[楼主]   回复  引用  查看    
我第一次使用VS.net。在使用过程中我无法打开*.vbproj和*.sln。
系统提示我“无法打开项目文件,问题很可能是因为本地web服务器上没安装所需组件,运行vs.net安装程序并添加web开发组件”;请问我遇到这种情况该怎么办,还请高手门多多指点,我在在此先谢谢啦

如果是打开Web工程项目,请确认你已经安装vb.net、iis与frontpage扩展。
2005-11-23 15:13 | Jeet      
#20楼   回复  引用    
我已经安装了IIS且安装了frontpage2000扩展,SQL server 2000和vb.net
安装顺序:IIS、SQL server 2000、vb.net;同时我也安装了MSDN,但是在弹出的对话框中点击帮助就会出现一个IE浏览器,显示为“该页无法显示”
2005-11-24 13:04 | 初学者[未注册用户]
#21楼[楼主]   回复  引用  查看    
To 初学者:
可参考下面做法试试
在安装 IIS 时,强烈建议您确保 Web 服务器计算机的安全。有关详细信息,请参见属于安装文档的文件 WebServer.htm。该文件在安装 CD 上的位置为 Disk1\Setup\WebServer.htm。安装 Visual Studio 后,在硬盘的 %install%\CSetupMM\WebServer.htm 处也可找到该文件。
2. 安装或重新安装 .NET Framework。运行 Visual Studio.NET 安装并选择选项 1“Windows 组件更新”。
注意 如果您确定在 Web 服务器计算机上安装了 .NET Framework 的当前版本,则可以跳过此步骤。
3. 打开 Windows 的“运行”窗口,然后键入以下内容以启用 ASP.NET:
aspnet_regiis.exe /i
提示 您可以从命令的正确目录中直接打开该命令窗口。从 Windows 的“开始”菜单,指向“程序”、“Visual Studio .NET 2003”、“Visual Studio .NET 工具”,然后选择“Visual Studio .NET 命令提示”。在窗口打开后,键入 aspnet_regiis /i。
4. 安装 Visual Studio .NET 服务器组件。
a.再次运行 Visual Studio .NET 安装,并选择选项 2“Visual Studio .NET”。
提示 可以从“控制面板”运行该安装,方法是:选择“添加或删除程序”,选择“Microsoft Visual Studio .NET”(具体名称会根据所安装的版本和语言而稍有不同),然后单击“更改/删除”。
b.选择“添加或删除功能”。
c.打开“服务器组件”节点并选中“Web 开发”。
d.单击“立即更新!”
5. 对 IIS 执行安全锁定,但随后启用 ASP.NET。
2005-11-24 16:47 | Jeet      
#22楼   回复  引用    
fdsfsdf
2005-12-30 14:42 | fgdgds[未注册用户]
#23楼   回复  引用    
多谢你的帮助!希望今后有更多的关于初学者的指点
2006-03-05 23:56 | 辛巴德水手[未注册用户]
#24楼   回复  引用    
看了有点收益,3Q!
2006-03-15 17:27 | peaceli[未注册用户]
#25楼   回复  引用    
请问我在广西框中输入内容后,如何把哪个error去掉,不可能一直显示在哪里啊
2006-04-04 22:04 | 小谢[未注册用户]
#26楼   回复  引用  查看    
好方法,就是渐进搜索没有试出来,顶一个!
2006-04-08 11:31 | 王传炜      
#27楼   回复  引用    
谢谢了,好文章!
2006-08-02 10:37 | liuliuliuilu[未注册用户]



刷新评论列表  刷新页面  返回页首
发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

验证码: 验证码 看不清,换一个

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 134934

链接:切换模板
导航:网站首页 社区 新闻 博问 闪存 网摘 招聘 找找看 Google搜索



China-pub 计算机图书网上专卖店!6.5万品种 2-8折!
China-Pub 计算机绝版图书按需印刷服务

相关文章:

最新IT新闻:
Twitter无处不在 魔兽世界Twitter发送器插件发布
Firefox 3.5匆忙推出漏洞多 Mozilla本月将更新
预测:Twitter最可能收购的十家公司
网易澄清:与暴雪合资公司仅提供技术支持
杰克逊悼念仪式或成史上最大规模Web活动

相关链接:

 
Powered by:
博客园
Copyright © Jeet