可以从左侧的工具箱中找到常见的控件(你要在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
邮箱:[email protected]
?
?
?