成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

VB.NET控件自動(dòng)排序相關(guān)代碼示例指南

開發(fā) 后端
我們將會(huì)在這里通過一段詳細(xì)的代碼來對(duì)VB.NET控件自動(dòng)排序這一操作進(jìn)行以此深入的解讀,幫助大家充分掌握這一應(yīng)用技巧,提高編程效率。

在如今這個(gè)信息技術(shù)更新速度奇快的時(shí)代中,程序員是幸福的。因?yàn)樗麄兛梢酝ㄟ^這些不斷更新的技術(shù)帶來的更重幫助,輕松的完成各項(xiàng)工作需求。VB.NET編程語言就是其中一個(gè)作用比較大的編程語言。#t#

在VB.NET中,面對(duì)大量相同控件的整齊排列時(shí),雖可在設(shè)計(jì)時(shí)排列好,但難免在調(diào)試中不小心移動(dòng),或后來又增減一些。于是有人用語句在程序中調(diào)節(jié),其艱辛是可想而知的(筆者深有體會(huì)),即使位置排好了,由于控件添加的先后問題,其索引屬性(.TabIndex)往往一片混亂.能不能讓控件的位置、索引屬性的排序?qū)崿F(xiàn)自動(dòng)化呢?經(jīng)過一番思索,筆者終于找到了很好的VB.NET控件自動(dòng)排序解決辦法,并成功應(yīng)用于自己開發(fā)的注冊(cè)表修改器中。

例子:新建工程,放入一個(gè)Frame控件Frame1,再在Frame1 中放入4個(gè)復(fù)選框checkbox1、checkbox2、checkbox3、checkbox4
在form_load()子過程中加入一句:ArrangeChildren frame1 運(yùn)行結(jié)果為4個(gè)復(fù)選框等間距整齊地排列在其容器frame1 中。在設(shè)計(jì)窗口中,你可以任意調(diào)整它們的上下位置,運(yùn)行后將按它們?cè)O(shè)計(jì)時(shí)的上下順序整齊排列,并且它們的索引順序按由下到大排列。(索引順序的作用大家知道吧——讓你的程序支持鍵盤操作)。更妙的是,你可在容器中任意增加、減少控件數(shù)量(類型要一樣),運(yùn)行后它們都能整齊排列,從而一勞永逸。

以下是具體的VB.NET控件自動(dòng)排序子過程代碼

  1. Public Sub ArrangeChildren(Father As Control) 'Father為容器控件 

功能:

(1)對(duì)容器控件內(nèi)的子控件的TabIndex值進(jìn)行排序

排序依據(jù)是:由上到下(.Top值由小到大),TabIndex小到大

(2)對(duì)容器控件內(nèi)的子控件等間距整齊排列

  1. Dim Child As Control '窗體中的任一控件  
  2. Dim Children() As Control '屬于容器中的控件數(shù)組  
  3. Dim Tags() As Integer '元素的值記錄了控件的TabIndex值  
  4. Dim TempChild As Control '臨時(shí)控件  
  5. Dim i As Integer, j As Integer  
  6. Dim x As Integer, Y As Integer  
  7. Dim wChild As Integer, hChild As Integer  
  8. Dim num As Integer  
  9. Dim strTemp As String  
  10. Const ADJUST as integer=150 ’微調(diào)(可適當(dāng)增減)  
  11. num = 0 
  12. For Each Child In Father.Parent.Controls ‘搜索容器所在窗體中的每一個(gè)控件  
  13. If TypeOf Child Is CheckBox Then ‘這個(gè)判斷是為了提高效率,可不要  
  14. If Child.Container Is Father Then  
  15. ReDim Preserve Children(num)  
  16. ReDim Preserve Tags(num)  
  17. Set Children(num) = Child  
  18. Children(num).Tag = num 
  19. Tags(num) = Children(num).TabIndex  
  20. numnum = num + 1  
  21. End If  
  22. End If  
  23. Next  
  24.  
  25. If num < 1 Then Exit Sub ‘當(dāng)容器中一個(gè)子控件也沒有時(shí),退出  
  26. num = UBound(Children)   
  27. SortProc Tags ‘將數(shù)組Tags()按由小到大順序排序  
  28. ArrayTagProc Children ‘越在屏幕上面的控件,其<.top>值越小,故讓其<.tag>值也小  
  29. For i = 0 To num  
  30. Children(i).TabIndex = Tags(Children(i).Tag)  
  31. Next i ‘越在屏幕上面的控件,其索引值小(實(shí)現(xiàn)索引值的排序)  
  32. ArrayTabIndexProc Children '  
  33. x = 200 ‘控件在其容器中的起始位置  
  34. wChild = 4000 ‘控件寬度  
  35. hChild = 255 ‘控件高度  
  36. Y = (Father.Height - ADJUST - (num + 1) * hChild) / (num + 2)  
  37. For j = 0 To num  
  38. Children(j).Move x, (j + 1) * Y + j * hChild + ADJUST, wChild, hChild  
  39. Next j  
  40. End Sub  
  41.  
  42. Public Sub SortProc(ArrInt() As Integer) '對(duì)整數(shù)數(shù)組進(jìn)行排序  
  43. Dim i As Integer, j As Integer  
  44. Dim temp As Integer  
  45. Dim num As Integer '數(shù)組大小  
  46. num = UBound(ArrInt)  
  47. For i = 0 To num  
  48. For j = i + 1 To UBound(ArrInt)  
  49. If ArrInt(i) > ArrInt(j) Then  
  50. temp = ArrInt(i)  
  51. ArrInt(i) = ArrInt(j)  
  52. ArrInt(j) = temp  
  53. End If  
  54. Next j  
  55. Next i  
  56. End Sub  
  57.  
  58. Public Sub ArrayTabIndexProc(ArrControl() As Control) '對(duì)控件數(shù)組進(jìn)行排序  
  59. '控件數(shù)組 ArrControl(0),ArrControl(1),ArrControl(2),.....ArrControl(n)  
  60. '的TabIndex值按由低到高順序排列  
  61. Dim i As Integer, j As Integer  
  62. Dim temp As Control  
  63. Dim num As Integer  
  64.  
  65. num = UBound(ArrControl)  
  66. For i = 0 To num  
  67. For j = i + 1 To UBound(ArrControl)  
  68. If ArrControl(i).TabIndex > ArrControl(j).TabIndex Then  
  69. Set temp = ArrControl(i)  
  70. Set ArrControl(i) = ArrControl(j)  
  71. Set ArrControl(j) = temp  
  72. End If  
  73. Next j  
  74. Next i  
  75. End Sub  
  76.  
  77. Public Sub ArrayTagProc(arr() As Control) '對(duì)控件的<.tag>屬性進(jìn)行排序  
  78. '越在屏幕上面的控件,其<.top>值越小,故讓其<.tag>值也小(最綜的目的是讓其索引值小)  
  79. Dim i As Integer, j As Integer  
  80. Dim temp As Variant  
  81. Dim num As Integer  
  82. Dim arrTop() As Integer '存儲(chǔ)控件<.Top屬性>數(shù)組  
  83.  
  84. num = UBound(arr)  
  85. ReDim arrTop(num)  
  86. For i = 0 To num  
  87. arrTop(i) = arr(i).Top  
  88. Next  
  89. SortProc arrTop '按照由小到大順序  
  90. For i = 0 To num  
  91. For j = 0 To num  
  92. If arr(i).Top = arrTop(j) Then arr(i).Tag = j 
  93. Next j  
  94. Next i  
  95. End Sub 

以上VB.NET控件自動(dòng)排序程序在VB5.0、VB6.0中調(diào)試通過。讀者可以用到自己的程序中,今后再也不用為調(diào)整位置和索引順序而作一些簡單重復(fù)勞動(dòng)了。

責(zé)任編輯:曹凱 來源: wewill.cn
相關(guān)推薦

2010-01-11 15:01:55

VB.NET冒泡排序

2010-01-19 12:53:59

VB.NET Text

2010-01-18 15:01:02

VB.NET異常迭代捕

2010-01-13 10:53:24

VB.NET控件

2009-10-23 13:14:38

2009-10-14 10:19:57

VB.NET Doma

2009-10-20 10:16:24

VB.NET COMB

2009-10-14 16:04:43

VB.NET Noti

2010-01-08 10:48:05

VB.NET多線程

2010-01-19 17:03:25

VB.NET可執(zhí)行語句

2010-01-14 13:08:37

VB.NET運(yùn)算符

2010-01-13 18:09:09

VB.NET動(dòng)態(tài)生成代

2009-10-14 17:21:47

VB.NET定制Win

2009-10-16 13:19:04

VB.NET Data

2009-10-16 14:07:18

VB.NET使用Mon

2009-10-14 11:15:06

VB.NET Grou

2009-10-27 18:06:41

VB.NET開發(fā)控件

2009-10-29 10:45:01

VB.NET設(shè)置控件

2009-10-10 16:44:52

VB.NET開發(fā)控件

2009-10-13 15:09:19

VB.NET使用Tre
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 亚洲精品免费观看 | 国产免费福利小视频 | 黄色成人免费看 | 亚洲 欧美 日韩 在线 | 日韩欧美亚洲综合 | 精品在线一区二区三区 | 污视频免费在线观看 | 成人在线免费网站 | 91视视频在线观看入口直接观看 | 夜久久 | 国产日韩欧美 | 午夜精品久久久久久久久久久久久 | 亚洲欧美一区二区三区国产精品 | 伊人久久综合影院 | 欧美在线视频不卡 | 欧洲妇女成人淫片aaa视频 | 国产精品久久亚洲7777 | 91在线视频免费观看 | 国产精品视频久久久久久 | 成人教育av | 亚洲成人免费在线 | 日韩波多野结衣 | 国产一区二区在线播放视频 | 日韩欧美中文字幕在线观看 | 中文字幕日韩av | 国产一区二区视频免费在线观看 | 日日射夜夜骑 | a级片www | 国产91成人 | 亚洲视频免费在线观看 | 91影片| 精品国产欧美日韩不卡在线观看 | 久久久久久久综合 | 91免费高清 | 日韩欧美字幕 | 亚洲欧美日韩精品久久亚洲区 | 99re视频在线免费观看 | 欧美一区二区网站 | 久久久久久久一区二区三区 | 日韩亚洲欧美一区 | 亚洲国产精品视频一区 |