一、WindowsForm下的DataGrid中使用CheckBox列
在csdn的.net板块中经常看到有人在问怎样在DataGrid中加入CheckBox列,看上去好像有点复杂,其实VS.net 2003就直接支持该项功能,只是由于其“隐蔽性”结果未被一些人发现。以下是使用过程,
1.在窗体上建立DataGrid;
2.选中DataGrid在属性窗口中点击TableStyles属性右边的按钮,在弹出的窗口中添加dataGrdiTableStyle1,在右边的属性窗口中,点击GradClumnStyles属性右边的按钮;
3.接下去的操作就是在弹出的窗口中添加按钮下拉菜单中选择列类型,这里包括DataGridTextBoxColumn和DataGridBoolColumn,默认是文本列。如下图所示:
二、使用链接文件
链接文件的作用笔者认为在某种程度上体现了重用。比如在解决方案中的多个项目都需要一些共同的文件,那么只需要一个实体文件,其他项目添加引用该文件是比较好的处理方式,有点类似于windows系统中文件的快捷方式但又有所不同,因为在项目编译时会同时编译该链接文件,比如该文件为代码文件。
下面是演示的解决方案:
要在Zhzuo.WindowsTest项目中链接Zhzuo.ConsoleTest中的App.config文件。选中需添加文件的项目,在右键菜单中选择添加“现有项”,浏览到app.config所在目录,选中该文件选择打开方式下拉菜单“链接文件”,如下:
完成后的操作如下:
该App.config文件图标上由一个类似快捷方式的箭头。从这一操作过程笔者想到了Access文件的独占方式打开也是这样的。
三、添加解决方案项数据
大家肯定注意到上面截图中有一个特殊的文件夹就是解决方案项,不过vs.net 2003下功能还是有点弱。以下是在2005下的操作截图。
在2005中增加了文件夹功能。
演示性操作了一下结果如下:
感觉还不错,当然笔者更关心的是文件物理目录的位置所在,
如预料的那样在解决方案项中的文件夹实际上是不存在的,而这些文件存放在解决方案的顶级目录。笔者在解决方案中试着重命名Textfile2.txt文件名为Textfile1.txt,果真提示“无法重命名该文档,因为项目中已经存在使用所指定名称的文档。”,打开.sln文件未能找到相关配置信息,打开.suo文件(隐藏状态),看不到有用的东西。
以上是笔者在项目开发过程中所想到和用到的一些体验,而这些功能也往往是一些国内同行未注意到的。如果你经常看国外的一些开源.net项目,会发现类似于“解决方案项”, “链接文件”这类功能是比较常用的。
CheckBox(复选框)控件用来标识某个选项是否为选定的状态。因此通常用此控件提供“Yes/No”或“True/False”选项。可用分组的CheckBox控件显示多组不同类型的选项,用户可从中一个组选择一个或多个选项。CheckBox控件在工具箱中的图标如图所示:
CheckBox控件与RadioBox(单选框)控件都可以用来指示用户是否对某个选项作出选择。不同之处在于,对于一个组内RadioBox控件,一次只能选择其中的一个,而对于所有的CheckBox控件,则可选定任意数目的复选框。RadioBox控件将在后面进一步介绍。
1.CheckState属性
CheckBox控件的CheckState属性指示复选框处于选定、未选定或禁止状态(暗淡的)中的哪一种。选定时,CheckState设置值为1。
下表为用于设置CheckState属性的数值和相应的Visual Basic常数:
设置值 | 值 | 常数 |
UnChecked | 0 | CheckState.UnChecked |
Checked | 1 | CheckState.Checked |
Indeterminate | 2 | CheckState.Indeterminate |
用户单击CheckBox控件指定选定或未选定状态,然后可检测控件状态并根据此信息编写应用程序以执行某些操作。缺省时,CheckBox控件设置为CheckState.Unchecked。若要预先在一列复选框中选定若干复选框,则应在New或InitializeComponent过程中将CheckState属性设置为CheckState.Checked以选中复选框;可将CheckState属性设置为CheckState.Indeterminate以禁用复选框。例如,有时可能希望满足某条件之前禁用复选框。
2.Click事件
无论何时单击CheckBox控件都将触发Click事件,然后编写应用程序,根据复选框的状态执行某些操作。在下例中,每次单击CheckBox控件时都将改变其Text属性以指示选定或未选定状态:
注意:如果试图双击CheckBox控件,则将双击当作两次单击,而且分别处理两次单击,即:CheckBox控件不支持双击事件。
3.响应鼠标和键盘
在键盘上使用Tab键并按SpaceBar键,由此将焦点转移到CheckBox控件上,这时也会触发CheckBox控件的Click事件。可以在Text属性的一个字母之前添加连字符,创建一个键盘快捷方式来切换CheckBox控件的选择。
4.增强CheckBox控件的视觉效果
CheckBox控件象Button和RadioButton控件一样,可通过更改Style属性的设置值后使用Image、ImageAlign、ImageIndex和ImageList属性增强其视觉效果。例如:有时可能希望在复选框中添加图标或位图,或者在单击或禁止控件时显示不同的图象等。
在vb.net中,CheckBox、CheckedListBox、RadioButton和TrackBar这四个控件的功能都是设置和获取值的,我们称之为设置值的控件。这篇我们就先来了解下CheckBox的使用。
在Windows 窗体中,CheckBox 控件指示某特定条件是打开的还是关闭的。它常用于为用户提供是/否或真/假选项。可以成组使用复选框 (CheckBox) 控件以显示多重选项,用户可以从中选择一项或多项,所以通常我们称之为复选框。
复选框 (CheckBox) 控件和单选按钮 (RadioButton) 控件的相似之处在于,它们都是用于指示用户所选的选项。它们的不同之处在于,在单选按钮组中一次只能选择一个单选按钮。但是对于复选框 (CheckBox) 控件,则可以选择任意数量的复选框,如下图一所示是复选框和单选按钮:
提示:关于单选按钮的使用请看:vb.net入门——设置值的控件:RadioButton的使用
复选框可以使用简单数据绑定连接到数据库中的元素。多个复选框可以使用 GroupBox 控件进行分组。这对于可视外观以及用户界面设计很有用,因为成组控件可以在窗体设计器上一起移动。
CheckBox 控件有三个重要属性
1、Checked 属性,指示复选框是已选中还是未选中,返回 true 或 false;
2、CheckState 属性,指示复选框的复选状态,返回 CheckState.Checked 、 CheckState.Unchecked、CheckState.Indeterminate;
3、ThreeState 属性,控制用户是否可以选择复选框的不确定状态,返回 true 和 false,当它设置为True时候,CheckState 还可能返回CheckState.Indeterminate 在这种“不确定状态”下,复选框以浅灰色显示,以表示该选项不可用。
在vb.net的工具箱中,CheckBox控件如下图二所示:
一、响应CheckBox的单击事件
每当用户单击 Windows 窗体上的复选框 CheckBox 控件时,便会触发Click事件,当用户双击复选框控件时,每次单击将单独处理,所以CheckBox控件是不支持双击事件的。
需要注意的是,在CheckBox的属性中,有一个 AutoCheck 属性,如果 AutoCheck 属性为 true(默认值),当单击复选框时,CheckBox 自动被选中或清除。否则,当 Click 事件发生时,必须手动设置 Checked 属性。
下面我们演示在 Click 事件处理程序中,使用 Checked 属性确定控件的状态,并执行必要操作。如下代码:
Private Sub CheckBox1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles CheckBox1.Click
If CheckBox1.Checked = True Then
CheckBox1.Text = "Checked"
Else
CheckBox1.Text = "Unchecked"
End If
End Sub
当然,以上代码是为了演示Checked属性的返回值,实际上要获得一样的效果,也可以使用以下的简化代码:
Private Sub CheckBox1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles CheckBox1.Click
CheckBox1.Text = CheckBox1.CheckState.ToString
End Sub
这里CheckBox1.CheckState返回的就是复选框的当前状态,一般情况下,我们是在CheckedChanged事件中检查复选框的当前状态,如下代码所示:
Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged
Select Case CheckBox1.CheckState
Case CheckState.Checked
'添加必要的执行代码
Case CheckState.Unchecked
'添加必要的执行代码
Cas
欢迎光临 信息发布软件,b2b软件,广告发布软件 (http://postbbs.com/) | Powered by Discuz! X3.2 |