- 帖子
- 132
- 主題
- 31
- 精華
- 0
- 積分
- 167
- 點名
- 0
- 作業系統
- XP
- 軟體版本
- Office 2007
- 閱讀權限
- 20
- 性別
- 男
- 來自
- Taipei
- 註冊時間
- 2011-4-14
- 最後登錄
- 2024-2-28
  
|
各位前輩,我後來試著很多次,在我的程式中加入DoEvents,而且是加在那一個位置上,就可以了,但是我也不清楚為什麼,要是有清楚的前輩,能否幫我解疑,感謝您
With UFLB
.Caption = UFListBox_Caption
.ListBox1.ListStyle = fmListStyleOption '讓前端有一個勾選的框,可以更清楚是否有被選取
.ListBox1.MultiSelect = LB_MultiSelect_Lng
.ListBox1.List = LB_List_AR_Str
'UserForm1的InsideHeight , 與InsideWidth,都為唯讀,不能改變其數值,這二個數值是指,UserForm的內部空間大小,因為UserForm還有抱括標頭與邊線,所以要取出其差距,再來加上InsideHeight,來設定Height;加上InsideWidth來設定Width。
HeightGap_Sng = .Height - .InsideHeight
WidthGap_Sng = .Width - .InsideWidth
.ListBox1.Height = LB_Height_Sng
.ListBox1.Width = LB_Width_Sng
'上面二值要決定ListBox1的大小
DoEvents '需要加這一行,要不然有時下方的二個控制項OK與Cancel會無法顯示出來
.OK.Height = OKC_Height_Sng
.OK.Width = OKC_Width_Sng
'上面二值要決定OK的大小
.Cancel.Height = CancelC_Height_Sng
.Cancel.Width = CancelC_Width_Sng
'上面二值要決定Cancel的大小
.ListBox1.Top = 0
.ListBox1.Left = 0
.OK.Top = .ListBox1.Top + .ListBox1.Height
.OK.Left = 0
.Cancel.Top = .OK.Top
.Cancel.Left = .OK.Left + .OK.Width
'上述是決定這三個控制項的排列位置
.Height = .ListBox1.Height + .OK.Height + HeightGap_Sng
.Width = .ListBox1.Width + WidthGap_Sng
'設定UFListBox的呈現大小
.ListBox1.ListIndex = -1
'初始化ListBox1為無任何勾選
.Show 'Initialize在前面「Set UFLB = New UFListBox」執行過了,所以這邊Show不會再執行
End With |
|