个人理解:windows系统是消息驱动型的系统,消息带来事件,事件引发处理。
比如按下按钮消息,引发按钮的Click事件,然后我们就需要编程处理这个事件。
整个系统就是围绕消息的处理进行的。
新建一个项目,选择 窗体应用程序
出来的窗体设计界面上,双击窗体,转入默认的 Form1_Load (假设窗体名称没有改变,是默认的Form1)事件的代码编辑。
例如加入以下代码:
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Me.Width = 400
Me.Height = 300
Console.WriteLine("窗体位置:{0},{1}", Me.Left, Me.Top)
Console.WriteLine("窗体大小:{0}*{1}", Me.Width, Me.Height)
Console.WriteLine("客户区域:{0},{1},{2},{3}",
Me.ClientRectangle.X, Me.ClientRectangle.Y,
Me.ClientRectangle.Width, Me.ClientRectangle.Height)
End Sub
那么就会在输出窗口输出我们想要显示的结果,之前我曾经谈到过Console.WriteLine在窗体应用程序时使用,会在输出窗口输出内容,而不是显示在命令行提示符下面,希望大家没有忘记。
一、先谈谈窗口上的区域:
1、显示窗口图标,需要设置Icon属性,不然只会显示默认的图标;设置ShowIcon=True,不然就不会显示图标。
2、窗口标题,在Text属性设置
3、系统菜单区域,如果标题栏有图标,那么单击那个图标就会出来这个菜单。
4、最小化按钮,如果MaximizeBox=False,则不会显示
5、最大化按钮,如果MinimizeBox=False,则不会显示
6、关闭按钮,都会显示,不过用api可以不显示出来。
7、工作区域,通常情况下都在这个区域放置控件、绘图等。
1、2、4、5、6,通常称为标题栏,如果设置属性FormBorderStyle=
None,那么标题栏都不会显示
如果在代码中输入 Me.ControlBox = False ,那么1、4、5、6都不会显示,如图:
二、关键词 Me
个人理解:
由于程序启动的时候,默认了一个窗体的新实例,用Me来代替了这个新实例。而Form1指的是一个类,
如果在代码中直接用Form1,那么就会有错误提示:
代码中甚至可以不要me,直接输入 Width = 400,也可以,不过不建议。
如果我们用一个变量来New了一个新的窗口,就可以用这个变量来操作新窗口了
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim formA As New Form2
formA.Show()
formA.ControlBox = False
End Sub
运行如图:
当然也可以用如下代码,但不推荐:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Form2.Show()
Form2.ControlBox = False
End Sub
我隐约记得在vs2003中好像是不能这么写的,但是vs2005后又可以了。当然vb6的时候是可以的。
实际,再写代码的时候,输入Form2,系统认为这是一个类,但是我们可以继续输入后面的内容。
如图,可以看出,vs提示的内容里面实际是没有相应的属性的。