可以从左侧的工具箱中找到常见的控件(你要在Form1这种窗体上)
为了方便你也可以把工具箱整个拖过去,这样从上到下控件都给你排好了
对于按钮来说,最常见的就是他的背景颜色,文字,字体,还有是否启用(我们输入按钮名称+点就可以访问这个控件的所有属性,事件和方法,注意属性是一把扳手的标识,事件是一个闪电,方法是一个小方块)
详细解释一下属性:我们先判断这个按钮是否已经Enabled(这里判断的就是按钮2的属性,属性就好比一个人有他的属性,身高,年龄,体重,姓名,性别,有一些属性是只读的,有一些是可读写的,对于控件按钮来说,他的属性也就是所有图标为扳手的东西,他的Enabled属性可以读也可以改,我们还可以读写他的背景色,文字,字体,大小,位置等等属性)
如果我选中了整个Form也可以访问到这个控件的所有属性(如果不是可视化的元素,而是自定义的类,那么就只能类或者类的实例+点看到他的所有属性了)
详细解释一下事件:事件是用来绑定方法的,也就是说按钮这个控件有很多事件,鼠标移入,鼠标移出,鼠标按下,鼠标弹起(如同人也可以有很多事件,比如睡着了,醒了,哭了,笑了,这些都是程序员自己定义的,我们后面自己封装控件和类的时候也可以自己定义事件),我们可以定义成鼠标按下和弹起的时候整个窗体改变背景色(注意写法,只要+=然后Tab会自动补全。可以想象Person张三.Smile事件 +=XXX方法,在XXX方法中定义这个人如果笑了就怎么怎么样,比如给他一巴掌,再让他哭)
为什么我们往窗体上拖放了一个按钮,点击之后自动可以写干什么,这也是微软帮我们自动的做了一步,点击之后他也自动创建了一条事件-方法的绑定(在Form1.Designer.cs文件里面),所以我们可以直接跳转到void btnTest1_Click的方法里去直接写干什么(读者可以自己尝试如果删了这一行会怎么样)
详细解释一下方法:我们选中了Form1,然后可以切换到他的事件里面,直接在Load事件里面鼠标双击,然后在窗体Load事件所执行的方法中写入btnTest1.PerformClick,这样我们就成功调用了这个按钮的方法(初始化的时候就默认点击一次)
他控件自带的方法参数是(object sender, EventArgs e)看起来怪怪的,这个不需要管他,如果是自定义的方法,就只要用到我们前面讲的基本数据类型,你想清楚这个方法输入什么,输出什么就完了。一般一个函数只会有一个输出,或者没有输出,但是可以有一个或者多个输入(或者没有输入),读者可以自己写一些方法测试运行,能熟练的自己写方法,是判断是否入门的重要标志,以后我们碰到一个实际问题的时候,总是需要想清楚大概需要哪些方法,每个方法需要什么输入,什么输出,把最关键的功能实现了,整个项目基本就预估能不能搞定,多久能搞定。
复选框checkbox和单选框radioButton应该放在一起讲。因为复选框是可以多选的,所以无所谓,单选框只能选一个,所以要把一组的单选框用一个panel包起来(比如性别要么男要么女,必须选一个,也只能选一个,那么性别这个组就要用一个panel包起来,此外可以有其他组,比如文科生/理科生,不同的组要分开),不管是单选框还是复选框,都只需要了解Check的属性可以读写就行了
Combobox这个控件一般是用来做不让用户写的(防止写错,想要详细研究用法的可以百度搜一下C#的三级联动菜单,经常发快递的时候肯定要用到省/市/县这种联动菜单,不让用户乱写可以防止出错),读者暂时只需要会简单的删除,增加和设置默认项目,获取当前内容即可(其实还需要防止Combobox被人为的修改数值,可以百度或者搜C#的FAQ找到答案)
讲到Combobox就有对比的ListBox,ListBox其实可以比Combobox有更多的属性和方法可以弄,比如可以多选,可以有右击菜单之类的,再此也不一一详细解释(还是只要会增加,删除,获取内容即可)
滚动条(progressbar)和拖动条(trackbar)也可以放在一起讲,两个都是有最大值,最小值,当前值(注意都是整数类型),区别就是trackbar是可以读写的,而progressbar是只能看不能改(如果你程序中不能判断你的数据是否会超过滚动条的最大值最小值,还是要做判断防止非法,否则程序会报错)
PictureBox就是放一个图像,我们最好先把Picturebox调整到跟图片一样的大小(当然也可以设置初始化的图片,错误的图片)
注意图片的来源,点开项目中的Resources.resx,然后添加图片进去(你也可以新建一个其他名称的资源文件,resx后缀的就是资源文件,我们放到这里面之后就可以在程序中轻松的访问这些图片,也可以是其他类型)
这样我们随时可以直接Properties.Resources.就显示出来了他所有的资源(我们导入图片的时候名字是1,2,3可能不允许这种直接数字的名称,自动改成了_1,_2,_3)
TextBox和RichTextBox也可以放在一起讲,注意勾选了MultiLine的Textbox也是可以直接多行的,而RichTextBox比传统的TextBox的好处就是更适合处理大量文本(具体两个控件能放多少文本百度就知道了)
此外RichTextBox更像是Word可以放图片,超链接文本,而TextBox更像是记事本,只能放普通字符串(具体RichTextBox如何演变成一个Word还是需要大量处理的,下一小节会介绍别人做好的牛逼第三方控件,初学者没必要花大量事件去研究一个控件,尤其是C#的程序员只要会拖控件就行了)
Label和LinkLabel都是可以实现超链接的(实际上LinkLabel不常用,因为我们不是在做网站,很少需要一个超链接到哪里去,做程序Label用的很多,经常需要显示一些文本,变量的变化情况等)
再看几个全局的控件,MenuStrip就是顶部的菜单栏(Visual Studio本身就是一个很好的说明)
与之对应的有右键的菜单栏,拖放一个ContextMenuStrip,然后虽然他显示在窗体顶部,其实运行的时候他是隐藏的,你可以在前面的listBox上设置右击就用这个右键菜单(在工具栏搜索menu就可以快速定位到这些不常用控件,要做菜单就是搜menu,要做按钮就是搜button)
除了大的菜单栏,大部分软件还会有工具栏(在工具栏搜索strip就可以快速定位到这些不常用控件,比较小的一行文字或者图标,一般在顶部菜单栏下方或者底部位置也放一排,这样可以让整个软件显得很规范,很好用),这两个分别对应了toolStrip和statusStrip,注意他们的默认属性Dock(就是靠在个窗体的哪个位置,默认是Top和Bottom,就是居于顶部和底部的,你也可以改成None然后就可以任意拖放位置了),当然这些复杂的控件编排我们暂时不需要掌握,只要知道有这么回事。
最后介绍一个不太常用的日历控件(选择一个起始时间和结束时间,可能买机票,定酒店的时候用得到,但是C#一般不会用来做这个),我可以鼠标从9选择到12,会自动显示起始时间和终止时间,并计算差的天数(比如你要订酒店要几天也应该这么算出来,更加详细的可能还要精确到几点到几点,但是这里只是简单涉及了DataTime和TimeSpan这些C#定义好的时间类型,我们还是只要会拿过来用就行了)
更多教学视频和资料下载,欢迎关注以下信息:
我的优酷空间:
http://i.youku.com/acetaohai123
我的在线论坛:
http://csrobot.gz01.bdysite.com/
问题交流:
QQ:910358960
C#基础视频教程3.1 常见控件类型和使用方法的更多相关文章
-
C#基础视频教程3.3 常见控件类型和使用方法
前面介绍了微软的控件,也介绍了几个第三方控件,那么这些控件是如何做出来的?即便我们自己不做控件,也至少要理解控件的原理. 如果要创建一个自定义控件,首先新建一个C#下面的Windows窗体控件库 ...
-
C#基础视频教程3.2 常见控件类型和使用方法
这一部分我们介绍如何使用第三方的控件,我们前面一节介绍了使用微软提供的官方控件,比较中规中矩,而且也不用担心稳定性.但是很多时候我们还是会希望用第三方的控件让自己的软件更美观,更独特. 就单纯的按钮, ...
-
Android 中常见控件的介绍和使用
1 TextView文本框 1.1 TextView类的结构 TextView 是用于显示字符串的组件,对于用户来说就是屏幕中一块用于显示文本的区域.TextView类的层次关系如下: java.la ...
-
SharePoint2010沙盒解决方案基础开发——关于TreeView树形控件读取列表数据(树形导航)的webpart开发及问题
转:http://blog.csdn.net/miragesky2049/article/details/7204882 SharePoint2010沙盒解决方案基础开发--关于TreeView树形控 ...
-
C#中WindowsForm常见控件的运用
C#中WindowsForm常见控件的运用 -- 1.button(曹操,贡天子以令不臣): 属性;text:我们经常可以看见将按钮命名为“登入”,在其属性面板里面编辑text即可:如下图: ...
-
C#常用控件的属性以及方法(转载)
-----以前看别人的,保存了下来,但是忘了源处,望见谅. C#常用控件属性及方法介绍 目录 1.窗体(Form) 2.Label (标签)控件 3.TextBox(文本框)控件 4.RichText ...
-
基于DevExpress开发的GridView如何实现一列显示不同的控件类型
在很多DevExpress的使用例子里面,我们可以看到,基于GridView实现的不同控件展示的时候,每一列的控件类型都是一样的,如果我要某一列的一行让用户可以从下列列表选择选项,而其他行不可选择,那 ...
-
[转] WinForm实现移除控件某个事件的方法
原文 WinForm实现移除控件某个事件的方法 本文实例讲述了WinForm实现移除控件某个事件的方法,供大家参考借鉴一下.具体功能代码如下: 主要功能部分代码如下: /// <summary& ...
-
MFC控件编程之 按钮编辑框.静态文本的使用,以及访问控件的七种方法.
MFC控件编程之 按钮编辑框.静态文本的使用以及访问控件的七种方法. 一丶按钮.静态文本的通用属性. 他们都有一个属性.就是可以输入标题内容.以及可以自定义控件ID. 创建一个MFC Dlg对话框. ...
随机推荐
-
Autofac 的点滴
泛型类型的注册和使用 public interface IRepository<T> where T:class { } public interface ISchoolDetailRep ...
-
js学习笔记2---HTML属性操作
1.HTML属性操作:读.写 属性名 属性值 2.属性读操作:获取.找到 a) 语法:元素.属性名 如:document.getElementById(“btn”).value; b) 字符串的连 ...
-
解决svn迁移过程中出现:SVN Error: is not the same repository as的问题
一.背景 由于公司业务的需要,新购买了一批机器,那么面临着的就是svn等一系列东西进行迁移的问题,在svn迁移以后,本地的svn代码在切换时出现了SVN Error: 旧服务器地址 is not th ...
-
[LintCode] Paint Fence 粉刷篱笆
There is a fence with n posts, each post can be painted with one of the k colors.You have to paint a ...
-
【iCore3 双核心板_ uC/OS-III】例程五:软件定时器
实验指导书及代码包下载: http://pan.baidu.com/s/1eSHenjs iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...
-
Linux的中断 &; 中断和异常的区别
参考 http://www.yesky.com/20010813/192117.shtml 结构化程序设计思想认为:程序 = 数据结构 + 算法.数据结构体现了整个系统的构架,所以数据结构通常都是代码 ...
-
Ajax-数据格式-xml,json
xml demo testDataXml <%@ page language="java" contentType="text/html; charset=UTF- ...
-
jdk-动态代理
1.HelloWorld package reflect.proxy; public interface HelloWorld { void print(); } 2.HelloWorldImpl p ...
-
JavaScript编程:使用DOM操作样式表
6.使用DOM操作样式表: 操纵元素的Style样式属性: background-color:style.backgroundColor color:style.col ...
-
T5大牛带你解析:如何实现分布式技术
1.分布式事务 2. 分布式锁 Java 原生 API 虽然有并发锁,但并没有提供分布式锁的能力,所以针对分布式场景中的锁需要解决的方案. 分布式锁的解决方案大致有以下几种: 基于数据库实现 基于缓存 ...