菜鸟涛

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: :: 管理 ::

  第一天本人大致在网上了解了一下vb.net,很惊喜的发现被我一直鄙视的vb,居然没停止过更新,不愧是bill所偏爱的语言,也很惊喜滴发现vb.net是面向对象滴。wonderful。

今天正式学习vb.net。欲善其事必先利器,在公司server上找到visual studio 2010,一路next成功。在安装vss 2005。去公司的SCM里下载了一份简单的vb.net web开发的项目。下到本地后,点击solution,加载到visual studio 2010,这里要注意可能会出现.net framework版本问题,不要选择visual studio 2010提示中的老版本.net framework,选择最新滴。本人在这里吃了亏,搞了几次,最后请教同事搞定。

 当能在 visual studio 2010看到公司的项目,cool,two eyes into the black,完成不知道咋把这个项目run起来。

不过看这公司的vb.net代码,层次很清晰,仿佛回到java mvc模式下。 那怎么run起来呢,请教同事,哦,原来如此:

1.找到web 页面那个包(java的理解,.net的没去研究),右键publish。

2.输入页面url,搞定。

搞定后,我对着login页面,查看运行流程,其实也和java web开发一样,loginaction--》databaseservicce--》bean--》forward page。很经典的MVC。

项目成功跑起来,在去看了下代码,恩不错,vb.net的语法很有结构感也很简单。看了下,有点跃跃欲试啦,要实践在实践,这是我学习技术的方法。先动手写一段吧。

咋写呢,看到公司的vb.net资料,决定依葫芦画瓢,写个windows form的login窗体。

1. visual studio 2010 --》file--》new project--》visual basic --》windows form application,起个helloworld吧。

靠靠, visual studio 2010 可视化太爽了。

2.画个login窗体,有2个属性name ,passwrod,一个button。这时项目工程会生成Login.vb 里面包含Login.Designer.vb和Login.resx.看字面就知道是啥用途了。

注意text 框 的name=""里好像不能命名为name="name" ,如果这样命名的话,Login.Designer.vb会出现错误,貌似name是关键字了。没去深究。

3.但双击button时,IDE会帮组我们创建一个click listener。绝大部分C/S都是监听和响应,windows form也是一样滴。生成的代码

 

 Private Sub Button1_Click(ByVal sender As System.Object,    ByVal e As System.EventArgs) Handles Button1.Click

     
End Sub

 

 呵呵,看到个不懂的语法,Sub , ByVal ,As ,Handles. OK,让我们去google吧。google后大体了解:

Sub 和 Function 是两口子。区别就是Sub是过程,Function是函数,Sub无返回值,而Function可以有返回值。

ByVal 和ByRef 也是两口子。ByVal 是传值,拷贝内存的值。 ByRef是传引用,传递指针。

As 声明类型

Handles 句柄。

 有事,未完待续。。。 

 10分钟后,I'm back...

 不过有个问题,winForm里没有直接password输入框,咋办呢,在properties里看到个PasswordChar,设置为*。 搞定。

 搞定了以上这些,该现实一些业务逻辑了。来个简单的输入值后,在button click事件里进行判断。

那怎么获取文本框的值,呵呵很简单文本框name属性.Text.  如:Txb_name.Text  .   Very simple...

那vb.net的if语法是咋样呢,忘记提了vb.net的语言绝大部分是以大写字母开头,不过不需要担心大小写,visual studio2010帮我们搞定了,在感叹一下IDE的强大。

if的语法:

If Txb_name.Text = "" Or Txb_psd.Text = "" Then
            
MsgBox("name and password must be not empty!")
Else
    
If CheckLogin(Txb_name.Text, Txb_psd.Text) Then
                Debug.Print(
"debug..")
                Console.WriteLine(
"hello world !")
     
Else
                
MsgBox("name or password is invalid!")
     
End If

End If 

看看其结构很清晰,具体语法就是

If ..then

Else

End If

如果我们是多个条件一起判断,语法是怎么样的呢?原以为会有&& 和 ||,但是没有,之后去google,大家没事就去google下。

有 And , Or 来连接多个条件的判断。

看到上面的判断语句,会发现CheckLogin(Txb_name.Text, Txb_psd.Text)这条,也许会想这是vb.net自带的函数吗,呵呵,不是滴。菜鸟涛也搞了好几年的面向对象,自己去封装下。虽然封装是个很大的概念,但逃脱不了封装方法,对象引用,数据。

那就看看 CheckLogin的代码:

Private Function CheckLogin(ByVal uname As StringByVal pswr As String)
        
If StrComp(USER, uname) = 0 And StrComp(PSW, pswr) = 0 Then
            
Return True
        
End If
        
Return False

End Function 

 ok,会发现使用Function,这里就有return。

那USER 和 PSW在那里呢,菜鸟阶段还没学到使用数据库,只能先定义2个常量了。

vb.net的常量语法是使用Const,constant的缩写。

代码

Const    USER AsString="xxx"

Const PSW As String = "xxx" 

ok,现在我们可以run起来了,那怎么才能看到打印的hello world。

这里需要在visual studio2010:  Debug--》windows--》Output 。

哈哈,这样大体完工了。

下个星期准备学习怎么在几个winForm里切换 。

Persist 

 

 

 

 

posted on 2011-04-15 15:23  菜鸟涛  阅读(714)  评论(3编辑  收藏  举报