乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      VB控件數(shù)組的操作技巧

       悟靜 2009-07-24

      控件數(shù)組有在設(shè)計(jì)時(shí)設(shè)置好的,也有在運(yùn)行中創(chuàng)建的??丶?shù)組一方面使得程序簡(jiǎn)潔、令代碼易于維護(hù),另一方面能使程序具有靈活性??梢?,科學(xué)地利用控件數(shù)組可使編程工作的效率更高。本文是從筆者回答網(wǎng)友的問(wèn)題中整理出來(lái)的,與原來(lái)的回答相比略有改動(dòng)。希望這些"技巧"對(duì)大家有些幫助。如有不妥之處,敬請(qǐng)指教。

      一、運(yùn)行中設(shè)置數(shù)組控件的屬性

      設(shè)窗體上有若干個(gè)以 Command1 命名的命令按鈕,現(xiàn)要求:點(diǎn)擊其中一個(gè)按鈕后,該按鈕不可用,而其它的按鈕均可用。以下幾行代碼可以實(shí)現(xiàn)這個(gè)要求,比一個(gè)一個(gè)的設(shè)置高效得多。

      Private Sub Command1_Click(Index As Integer)

      Dim i As Integer '計(jì)數(shù)器
      Dim comNum As Integer '按鈕的索引號(hào)
      comNum = 0
      For i = 0 To Command1.Count - 1
      comNum = comNum + 1
      If comNum > Command1.Count - 1 Then comNum = 0
      Command1(comNum).Enabled = True '讓所有按鈕可用
      Next
      Command1(Index).Enabled = False '讓被單擊按鈕不可用

      End Sub

      二、運(yùn)行中添加和卸載數(shù)組控件

      窗體上已有一個(gè)文本框Text1,程序需要在運(yùn)行時(shí)動(dòng)態(tài)地創(chuàng)建若干文本框,可這樣實(shí)現(xiàn):

      1.首先,設(shè)計(jì)時(shí)給Text1的Index屬性設(shè)置為"0",這一步很重要:有了索引號(hào)才能創(chuàng)建數(shù)組控件;

      2.編寫代碼:[之前請(qǐng)給工程添加兩個(gè)命令按鈕,Name屬性取缺省值,Caption屬性分別為:添加、卸載]

      Private Sub Command1_Click()

      Dim txtNum As Integer 'Text1的Index號(hào)
      Dim Num As Integer '賦給各TextBox的值

      txtNum = 0 '初值
      Num = 1 '初值

      Text1(0).Text = "Text" & Num '第一個(gè)Text1的值

      Dim i As Integer '計(jì)數(shù)器
      For i = 0 To 4 '添加五個(gè)TextBox
      txtNum = txtNum + 1
      Num = Num + 1
      Load Text1(txtNum) '加載文本框
      Text1(txtNum).Top = Text1(txtNum - 1).Top + 450 '設(shè)置位置
      Text1(txtNum).Text = "Text" & Num '加載內(nèi)容
      Text1(txtNum).Visible = True '令其可見:不能漏
      Next

      Command1.Enabled = False
      Command2.Enabled = True

      End Sub

      Private Sub Command2_Click()

      Dim i As Integer, N As Integer
      N = 0
      For i = 1 To Text1.Count - 1
      N = N + 1
      Unload Text1(N)
      Next

      Command1.Enabled = True
      Command2.Enabled = False

      End Sub

      三、給運(yùn)行中添加的數(shù)組控件命名并編寫事件

      其實(shí)例二已經(jīng)給數(shù)組控件命了名,只是簡(jiǎn)單了些。本例將文件夾"F:\Txt"下的所有.txt的文件名作為菜單的Caption添加到菜單項(xiàng)里[請(qǐng)事先建立此文件夾并拷貝一些.txt文件,或者更改代碼],當(dāng)點(diǎn)擊這些菜單,程序?qū)⒄{(diào)出Windows的記事本打開相應(yīng)的文件。
      鍵入以下代碼前請(qǐng)啟動(dòng)VB的菜單編輯器,建立一個(gè)父菜單項(xiàng)[Naem和Caption屬性任意],然后在此父菜單下建立一個(gè)子菜單,Name屬性為"mnuFiles",Caption屬性為"沒有文件"。

      Dim MyPath As String '路徑名變量

      '添加并命名菜單過(guò)程
      Private Sub AddMenu()

      Dim MenuNum As Integer '菜單索引號(hào)變量
      Dim MyFiles As String '文件名變量

      MenuNum = 0 '初值

      MyFiles = Dir(MyPath + "*.txt") '僅查找文本文檔
      If MyFiles = "" Then Exit Sub '為空則退出過(guò)程

      mnuFiles(0).Caption = MyFiles '給第一個(gè)菜單命名

      Do Until MyFiles = ""
      MyFiles = Dir()
      If MenuNum = 0 Then MenuNum = 1
      MenuNum = MenuNum + 1
      Load mnuFiles(MenuNum) '加載菜單
      mnuFiles(MenuNum).Visible = True '設(shè)置為可見:不能漏
      mnuFiles(MenuNum).Caption = MyFiles
      If mnuFiles(MenuNum).Caption = "" Then Unload mnuFiles(MenuNum)
      '若菜單名為空則卸載掉
      Loop

      End Sub

      Private Sub Form_Load()

      MyPath = "F:\Txt\" '規(guī)定路徑
      Call AddMenu '執(zhí)行添加菜單過(guò)程

      End Sub

      Private Sub mnuFiles_Click(Index As Integer)

      Dim ret As String
      '用Windows的記事本打開文件:注意中間的空格不能少
      ret = "Notepad.exe" & " " & MyPath & mnuFiles(Index).Caption
      Shell ret, vbNormalFocus

      End Sub

      四、控件在窗體上的排列問(wèn)題

      曾有一位網(wǎng)友兩次問(wèn)土人怎樣才能在窗體上添加100萬(wàn)個(gè)文本框。呵呵,這要多大的顯示器才能顯示出來(lái)呀!不過(guò),添加的數(shù)組控件多了,排列確實(shí)是個(gè)問(wèn)題。下面的例子給窗體添加499個(gè)Label控件,連同事先繪制好的Index號(hào)定義為0的控件,總共有500個(gè),能在窗體上從左到右、從上到下整齊地排列。程序運(yùn)行時(shí)要花些許時(shí)間。

      Option Explicit

      Private Sub Form_Load()

      Me.Width = 6800
      Me.Height = 6000
      Me.Caption = "添加標(biāo)簽演示"
      With Label1(0)
      .Top = 0
      .Left = 120
      .Height = 200
      .Width = 300
      .Caption = ""
      End With

      AddLabels

      End Sub

      Private Sub AddLabels()

      Dim i As Integer '計(jì)數(shù)器
      Dim Num As Integer 'Label的Index號(hào)
      Dim k As Integer '判斷是否滿行
      Dim n As Integer '行數(shù)計(jì)數(shù)器

      Num = 0
      k = 0
      n = 0

      Label1(0).Caption = Num + 1

      For i = 1 To 499
      Num = Num + 1
      Load Label1(Num) '加載Label控件

      Select Case k
      Case 0
      Label1(Num).Left = Label1(Num - 1).Left + Label1(0).Width + 20
      If Num = 20 Then n = n + 1: k = n

      Case n
      Label1(n * 20).Left = 120
      Label1(n * 20).Top = Label1(0).Height * n
      Label1(Num).Top = Label1(0).Height * n
      Label1(Num).Left = Label1(Num - 1).Left + Label1(0).Width + 20
      If Num = (n + 1) * 20 Then n = n + 1: k = n
      End Select


      Label1(Num).Caption = "label1_"&(Num + 1)         '顯示為lable1_形式    這里可以用with.............end with設(shè)置屬性
      Label1(Num).Visible = True
      Next

      End Sub

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多