打印本文 打印本文 关闭窗口 关闭窗口
走近VB.Net(三) 源码详解—运用颜色的初步探讨
作者:武汉SEO闵涛  文章来源:敏韬网  点击数3997  更新时间:2009/4/23 19:01:11  文章录入:mintao  责任编辑:mintao
        ''''PM = PictureBox1.BackgroundImage
        ''''pm.SetPixel(X, y, pcolor)
        ''''End Sub ''''当然这个代码是不能放在函数里面的了!!!
    End Function
    
    
    Public Sub PictureBox1_MouseMove(ByVal sender As Object, ByVal e As System.WinForms.MouseEventArgs) Handles PictureBox1.MouseMove
        Dim PColor As System.Drawing.Color ''''声明一个color类型的变量
        Dim strPC As String  ''''声明一个String类型的变量
        Dim cltmpA, cltmpR, cltmpG, cltmpB As String ''''声明三个String类型的变量
         
        If apr Then Exit Sub ''''给一点时间好取定一个像素
        
        PColor = Getpixel ''''调用了getpixel,你也可以通过使用括号中的参数传第X,Y的值,在这个示例中使用公用变量pixX,pixY 
        LABEL1.BackColor = PColor ''''设定LABEL1控件的背景色
        strPC = PColor.ToString ''''tostring是把pcolor从system.drawing.color转为string的数据
        pixX = e.X ''''e是参数,也被当作一个对象,e.X是对象的一个成员,指明鼠标的当前坐标X值
        pixY = e.Y : LABEL1.BackColor = Getpixel ''''键盘不灵,回车不了,只好打“:”代替分行
        
        cltmpA = strPC.Substring(STRPC.IndexOf("A"), (STRPC.INDEXOF("R") - 2) - STRPC.IndexOf("A")) ''''substring 就替我们sub一部份string,就好象VB6的mid函数,取代left,right函数
        CLTMPA = CLTMPA.Substring(CLTMPA.IndexOf("=") + 1, CLTMPA.Length - (CLTMPA.IndexOf("=") + 1)) ''''substring 就替我们sub一部份string,就好象VB6的mid函数,取代left,right函数
        ''''取得红色
        cltmpR = strPC.Substring(STRPC.IndexOf("R"), (STRPC.INDEXOF("G") - 2) - STRPC.IndexOf("R")) ''''substring 就替我们sub一部份string,就好象VB6的mid函数,取代left,right函数
        CLTMPR = CLTMPR.Substring(CLTMPR.IndexOf("=") + 1, CLTMPR.Length - (CLTMPR.IndexOf("=") + 1)) ''''substring 就替我们sub一部份string,就好象VB6的mid函数,取代left,right函数
        ''''取得绿色
        cltmpG = strPC.Substring(STRPC.IndexOf("G"), (STRPC.INDEXOF("B") - 2) - STRPC.IndexOf("G")) ''''substring 就替我们sub一部份string,就好象VB6的mid函数,取代left,right函数
        CLTMPG = CLTMPG.Substring(CLTMPG.IndexOf("=") + 1, CLTMPG.Length - (CLTMPG.IndexOf("=") + 1)) ''''substring 就替我们sub一部份string,就好象VB6的mid函数,取代left,right函数
        ''''取得蓝色
        cltmpB = strPC.Substring(STRPC.IndexOf("B"), STRPC.Length - STRPC.IndexOf("B") - 1) ''''substring 就替我们sub一部份string,就好象VB6的mid函数,取代left,right函数
        CLTMPB = CLTMPB.Substring(CLTMPB.IndexOf("=") + 1, CLTMPB.Length - (CLTMPB.IndexOf("=") + 1)) ''''substring 就替我们sub一部份string,就好象VB6的mid函数,取代left,right函数
        
        lbred.BackColor = System.Drawing.Color.FromARGB(CLTMPA.ToInt32, cltmpR.ToInt32, 0, 0) ''''fromargb就是VB6的RGB一样,只是在第一位多一个阿尔法(alpha)参数
        lbgreen.BackColor = System.Drawing.Color.FromARGB(CLTMPA.ToInt32, 0, cltmpG.ToInt32, 0) ''''提取绿色
        lbblue.BackColor = System.Drawing.Color.FromARGB(CLTMPA.ToInt32, 0, 0, cltmpB.ToInt32) ''''提取蓝色
        
        LAB2.Text = "R=" & CLTMPA ''''显示R值
        LAB3.Text = "G=" & CLTMPG ''''显示G值
        LAB4.Text = "B=" & CLTMPB ''''显示B值
    End Sub
    ''''cool啊,拖动是没有边框的
    Private Sub Form1_MouseDown(ByVal eventSender As Object, ByVal e As System.WinForms.MouseEventArgs)
        ''''mousedown的事件中窗体中的下拉列表是找不到的,自己写一个吧,加上(ByVal eventSender As Object, ByVal e As System.WinForms.MouseEventArgs)即可
        ''''Me.Capture() = False ''''释放鼠标捕获,等同于API的ReleaseCapture()
        ''''Me.SendMessage(&HA1S, 2, 0) ''''唔,这个就是哪个sendmessage的API了,只是第一个句柄参数不再用了。
    End Sub
    
    Public Sub PictureBox1_MouseLeave(ByVal sender As Object, ByVal e As System.EventArgs) Handles PictureBox1.MouseLeave
        apr = False ''''这个很有用的了,就是鼠标离开一个控件时以生的事件,这样的话,做一个动态3D按钮就很方便了
    End Sub
    
End Class
本文是面向对象的(对于VB。Net的入门者),我不保证在基于传统的面向对象的理论有曲解的地方(我从来没有面向对象过,我也并不是很喜欢面向对象,起码再怎么面向也面向不出第二个windows来),
但这篇文章确实能使初学者(我相信困惑于此的人不少吧)快速运用VB.Net编出简单的程序,
我的贴文是想激励更多的人来“未必多了他(VB。Net)”。
If

上一页  [1] [2] [3] [4] [5]  下一页

打印本文 打印本文 关闭窗口 关闭窗口