十月 14

Visual Studio中项目和解决方案的关系

一般来说,在Visual Studio中,项目是属于解决方案的。换句话说,我们的一个解决方案下面会有很多的项目。

举个具体的例子来说。我们的解决方案就相当于造车。而对应的项目就是造发动机项目,造传动箱项目,造悬架项目等。

一个解决方案是来解决一个问题的。而解决一个问题可能需要许多项目才能解决。他们合起来就是一个解决方案。

十月 14

C#和.net框架概念简介

C#是属于.net框架中的一个子集。

.net编译器编译后会产生程序集。程序集就是.dll文件或者.exe文件。程序集中包含CIL,即公共中间语言。程序集就可以通过JIT编译器在CLR的虚拟机环境下产生本机代码,进而操作硬件完成指令。

BCL:Base Class Library,中文翻译为基类库。就是系统给我们提供的一些类。

  • 通用基础类 - 文件操作,字符串操作等
  • 集合类 - 列表,字典等
  • 线程和同步类 - 多线程程序
  • XML类 - 读取及操作XML文档

CLR:通用语言运行平台(Common Language Runtime,简称CLR)是微软为他们的.NET的虚拟机所选用的名称。CLR包括内存管理,异常处理,垃圾收集,反射服务,JIT编译器,类加载器,安全服务等。托管代码是指.net框架下编写的代码,需要在CLR的环境下运行。而非托管代码则不再CLR控制之下,比如Win32 C/C++等。

JIT编译器:英文写作Just-In-Time Compiler,中文意思是即时编译器。JIT是一种提高程序运行效率的方法。

CIL:通用中间语言(Common Intermediate Language,简称CIL,是一种属于通用语言架构和.NET框架的低阶(lowest-level)的人类可读的编程语言。

七月 31

CheckedListBox如何设置点一下就选中

在我们使用Visual Studio进行C#编程时,经常会用到CheckedListBox控件。然而很多新手朋友们在使用这个控件的时候却会遇到一个问题,那就是CheckedListBox控件中的选项需要点两下才能选中。那么如何才能将CheckedListBox设置成用鼠标点一下就可以选中呢?

其实答案非常简单,只需要设置一个属性:

checkedListBox1.CheckOnClick = true;

这个属性的设定,既可以通过代码完成,也可以在设计界面下进行修改。怎么样,是不是很简单?赶快去试试吧!

七月 31

Visual Studio C#中try catch finally 怎么用

try catch finally的作用是捕捉可能出现异常的代码,并对这些异常提前给出应对的方案。这么说有些新手可能会不明白:既然知道会有异常,那么直接把代码改掉不就行了?其实不然,我们这里说的异常,一般是指在和外界交互时出现的异常。

举个例子,我们希望用户输出自己的年龄,并利用这个年龄计算来计算用户的出生年份。但是用户不一定会按照我们预想的方式进行输入。例如可能某个调皮的用户就输入了“中国”。在这种时候,如果我们没有用try catch finally做好异常捕捉,程序就很有可能会崩溃掉。说完了try catch finally的使用场景,我们再来简单说一下它的使用方法:

一、首先我们要将预见可能引发异常的代码放在在try语句块中。

二、如果发生了异常,则转入catch的执行。catch可以有多个,也可以没有,每个catch可以处理一个特定的异常。

.net按照你catch的顺序查找异常处理块,如果找到,则进行处理,如果找不到,则向上一层次抛出。如果没有上一层次,则向用户抛出,此时,如果你在调试,程序将中断运行,如果是部署的程序,将会中止。 如果没有catch块,异常总是向上层(如果有)抛出,或者中断程序运行。catch有几种写法:

  • catch  这将捕获任何发生的异常。
  • catch(Exception e)  这将捕获任何发生的异常。另外,还提供e参数,你可以在处理异常时使用e参数来获得有关异常的信息。
  • catch(Exception的派生类 e)  这将捕获派生类定义的异常。
  • catch(InvalidOperationException e) {     .... }  这样,如果try语句块中抛出的异常是InvalidOperationException,将转入该处执行,其他异常不处理。

三、finally可以没有,也可以只有一个。无论有没有发生异常,它总会在这个异常处理结构的最后运行。即使你在try块内用return返回了,在返回前,finally总是要执行,这以便让你有机会能够在异常处理最后做一些清理工作。如关闭数据库连接等等。值得注意的是,如果没有catch语句块,那么finally块就是必须的。 如果你不希望在这里处理异常,而当异常发生时提交到上层处理,但在这个地方无论发生异常,都要必须要执行一些操作,就可以使用try finally, 很典型的应用就是进行数据库操作。无论是否抛出异常,也无论从什么地方return返回,finally语句块总是会执行,这样你有机会调用Close来关闭数据库连接(即使未打开或打开失败,关闭操作永远是可以执行的),以便于释放已经产生的连接,释放资源。

顺便说明,return是可以放在try语句块中的。但不管在什么时机返回,在返回前,finally都会执行。

七月 17

windows常用快捷键大全

一、Fn键的使用

1、F1帮助

2、F2重命名

3、F3打开搜索

4、F4打开地址栏常用地址

5、F5刷新

6、F11全屏/退出全屏

二、文件和文件夹选择的快捷键

Shift键:选择连续的内容(与鼠标左键配合使用)

Ctrl键:选择不连续的内容(与鼠标左键配合使用)

Ctrl+a:选择全部内容

Ctrl+c:复制选择的项目

Ctrl+x:剪切选择的项目

Ctrl+v:粘贴选择的项目

Ctrl+z:撤销操作

Ctrl+y:重新执行某项操作

Delete:删除所选的项目并将其移动到“回收站”

Shift+delete:永久删除所选的项目(删除之后无法从回收站还原)

Alt+Table:在打开的项目之间来回切换

Alt+F4:关闭活动的项目或者退出活动程序

Alt+Enter:显示所选项的属性

Shift+F10:显示选定项目的快捷菜单

Esc:取消当前任务

Ctrl+Shift+Esc:打开任务管理器

Ctrl+鼠标滚轮:更改桌面上的图标大小

三、Windows徽标键相关的快捷键

Win:打开或者关闭开始菜单

Win+Pause:显示系统属性对话框

Win+d:显示桌面

Win+m:最小化所有窗口

Win+Shift+m:还原最小化窗口到桌面上

Win+E:打开我的电脑

Win+F:搜索文件或文件夹

Win+L:锁定您的计算机或切换用户

Win+R:打开运行对话框

Win+↓:最小化窗口

Win+↑:最大化当前窗口

Win+←:最大化到窗口左侧的屏幕上

Win+→:最大化到窗口右侧的屏幕上

Win+home:最小化所有窗口,除了当前激活窗口

四、windows资源管理器中的快捷键

Alt+P:显示预览窗格

Alt+←:切换到前一次打开的文件夹

Alt+→:切换到下一次后打开的文件夹

Alt+↑:打开上层文件夹

Backspace:打开上层文件夹

五、windows对话框中的快捷键

Ctrl+shiff+tab:在选项卡上向后移动

Tab:在选项上向后移动

Shift+Tab:在选项卡上向前移动

六、打印屏幕的快捷键

Print sc:打印全屏

Alt+Print sc:打印活动窗口

七月 17

Visual Studio C# Windows编程如何添加菜单和菜单项

当我们使用Visual Studio C#进行Windows编程的时候,经常要给窗口添加菜单和菜单项。但是如何添加菜单和菜单项才是正确的方式呢?

首先,我们应该从工具箱 ->菜单和工具栏中将MenuStrip拖拽我们正在设计的窗体中。

MenuStrip

此时,虽然我们可以直接在框体内输入菜单的名称。但是这样会导致一个问题,那就是菜单选项的Name属性会变成中文的。而我们只是希望菜单的Text属性变成中文的。虽然Visual Studio已经能够很好的支持中文了,但是使用中文为字段或者函数命名仍然不是一个好选择。所以,我们最好的解决方法就是在MenuStrip属性中找到Items属性,然后在这里面添加选项,并修改添加项的Text属性,而保留Name属性为中文。

MenuStripadditems

需要解释的是,我们这里Text属性设置为文件(&F),这里的&F设置的是菜单选项的快捷键。设置完的效果如下图所示:

MenuStripfinalresult

七月 16

C#学习者应该常去的网站

在我们学习C#的过程中,需要经常访问一些网站去补充新鲜知识或者向业内人士请教提问。那么有哪些网站是C#学习者应该常去的呢?安静在这里给大家分享一下:

1、http://msdn.microsoft.com/zh-CN/

微软的官方网站,C#程序员必去的地方。那里有API开发文档,还有各种代码、资源下载。

2、http://social.msdn.microsoft.com/Forums/zh-CN/home

微软msdn论坛。定位于微软技术的传播和技术问题的解决,是学习微软技术的好去处。

3、http://www.codeproject.com/

国外著名的社区网站,面向世界的程序员。有很多不错的程序都可以从那里下载到。

4、http://stackoverflow.com/

国外著名的问答社区。如果你有一些问题在csdn不能得到解答,可以试着去那里看看。

5、http://www.codeplex.com/

微软的开源项目网站,可以从这里下载到很多实用的程序。

6、http://www.w3school.com.cn/

国内有名的在线学习网站。方便程序员查阅相关技术点。

7、http://www.csdn.net/

国内著名的综合性中文IT社区。信息量大,综合性强,能够获得各种信息。而其中博客和论坛都是学习的好地方。

8、http://www.cnblogs.com/

博客园。很多精品博客来自于此,主打.NET,C#程序员聚集地。

9、http://www.51cto.com/

之前定位于网络、服务器硬件等方向,近期发展迅速,也扩展到了软件。

10、http://www.51aspx.com/

专业的asp.net网站,有各种项目、系统的源代码可供下载。

11、http://msdn.microsoft.com/zh-cn/library/67ef8sbd(v=vs.90).aspx

C#编程指南,官方文档,最权威、最详尽的资源。

12、http://tool.oschina.net/

在线工具,非常强劲。

七月 14

Visual Studio C#开发命名规范整理

当我们使用Visual Studio进行C#编程时,需要了解C#开发的命名规范。虽然就是不按照这些命名规范写出来的代码也可以执行,但是代码的可读性和可维护性将大大降低。另外大多数代码是多人协作写成的,按照C#命名规范来写也可以方便团队协作。这片文章是根据网上前人分享的经验进一步整理得到的,希望能够对新手朋友们有所帮助。

a) 类的命名

【规则1-1】类的命名使用Pascal规则,即每个单词的首字母都要大写。


Class TestClass
{
...
}

【规则1-2】使用能够反映类功能的名词或名词短语命名类。

【规则1-3】不要使用“I”、“C”、“_”等特定含义前缀。

【规则1-4】自定义异常类应以Exception结尾。


Class TestException
{
...
}

b) 类字段(即类成员变量)

【规则2-1】类字段的命名使用camel规则,即第一个单词首字母小写,后面其他单词的首字母大写。

【规则2-2】类字段变量名前可加“_”前缀,一般加“_”的成员变量为私有变量。

【规则2-3】坚决禁止在普通变量前加“m_”(这是VC老命名规则)。

Class TestClass
{
public string myName;
private string _myCoCo;
}

c)方法

【规则3-1】方法的命名使用Pascal规则,即每个单词的首字母都要大写。

【规则3-2】方法名应使用动词或动词短语。

【规则3-3】类中访问修饰符或功能相同的方法应该放在一起, 且公共或实现接口的方法在前。

Class TestClass
{
public void GetData(...)
{
...
}
}

d)属性

【规则4-1】属性的命名使用Pascal规则,即每个单词的首字母都要大写。

【规则4-2】属性和相应字段名称要关联, 可以使用“重构”菜单来生成属性。

Class TestClass
{
private string myName;
public string MyName
{
set { myName = Value; }
get { return myName; }
}
}

e)参数

【规则5-1】参数的命名使用camel规则,即第一个单词首字母小写,后面其他单词的首字母大写。

【规则5-2】使用描述性参数名称,参数名称应当具有最够的说明性。

【规则5-3】不要给参数加匈牙利语类型表示法的前缀。

【规则5-4】检查方法所有输入参数的有效性。

Class TestClass
{
public void GetData(string name,string strFlag)
{
...
}
}

f)常量

【规则6-1】只读常量和静态的字段或属性的命名使用Pascal规则,即每个单词的首字母都要大写。

【规则6-2】枚举名使用Pascal规则命名,枚举成员本质属于常量,命名规则同上。

【规则6-3】枚举值从小到大顺序定义。

Class TestClass
{
public const double Pi = 3.14159365753;
private readonly double Pai = 3.14159365753;
}

g)接口

【规则7-1】接口的命名使用Pascal规则,即每个单词的首字母都要大写,且必须以大写“I”开头。

【规则7-2】如果类实现了接口,名称尽量和接口相同, 只是省掉“I”字符。

【规则7-3】接口名称要有意义,中间不要有下划线“_”等字符。

interface ITest
{
...
}

h)事件委托

【规则8-1】事件委托的命名使用Pascal规则,即每个单词的首字母都要大写。

【规则8-2】定义事件委托要使用EventHandler后缀,且包括sender和e两个参数。

【规则8-3】事件委托用到的参数,名称要带EventArgs后缀。

Class TestClass
{
private delegate void DoTask();
private event DoTask DoTaskEventHandler;
private event DoTask DoTaskEventHandler(Object sender,EventArgse);
private event DoTask DoTaskEventHandler2(string strEventArgs)
{
...
}
}

i) 命名空间

【规则9-1】命名空间的命名使用Pascal规则,即每个单词的首字母都要大写。

【规则9-2】命名空间名称尽量反映其内容所提供的整体功能。

namespace MyTest
{
Class TestClass
{
...
}
}

七月 14

C# Windows窗体应用编程中form.show()和form.showDialog()有什么区别

当我们使用Visual Studio进行C#语言的Windows窗体应用编程时,经常会需要调用其他的窗口。当我们调用其他窗口的时候,可以选择使用form.show()方法或者form.showDialog()方法。那么这两种方法到底有什么区别呢?

form.show()方法打开的窗体被称作非模式窗体。这种非模式窗体及时还用户还没有处理,用户也可以切换到其他的窗体进行其他的操作。非模式窗体让用户的操作更加灵活便捷。用户可以方便的在不关闭非模式窗体的情况下修改其他窗体中的参数或者选项。

form.showDialog()方法打开的窗体被称作模式窗体。这种模式窗体在被关闭之前,用户是不能对其他窗体进行操作的。换句话说,只有完成了模式窗体要求我们进行的操作之后我们才能进行其他的操作。模式窗体能够让我们的程序操作流程更加清晰,操作顺序不容易被打乱。

form.show()打开的非模式窗体和form.showDialog()方法打开的模式窗体各自有各自的优势和适合的使用环境。我们应该根据自己的需要灵活选择。

七月 13

Visual Studio C# Windows窗体应用编程中LinkLabel.LinkVisited属性怎么使用

当我们使用Visual Studio C#进行Windows窗体应用编程时,经常会用到LinkLabel控件。在LinkLabel控件的属性当中有一个LinkLabel.LinkVisited属性,很多新手朋友都表示不知道这个属性是干什么用的。那安静就为大家讲解一下LinkLabel.LinkVisited属性怎么使用。

大家可能都有过这样的经验,一个连接在我们没有点击之前是蓝色的,比如我们的www.ajnote.com网站的链接:

labelvisited属性讲解

但是如果我们点击过这个链接,也就是访问过这个网站之后,链接的颜色就会发生改变,如下图所示:C# labelvisited属性讲解

这样做的目的其实是提醒用户哪些内容浏览过了,帮助用户对浏览过的链接做出标记。而让链接有用变色特性的,正是LinkLabel.LinkVisited属性。如果我们把LinkLabel.LinkVisited属性设置为true,系统就会认为我们访问过这个链接,并把链接的颜色设置成紫色,方便用户区分。如果LinkLabel.LinkVisited属性设置为false,那么系统就会认为我们没有访问过这个链接,链接的颜色就会被设置为默认的蓝色。