Board logo

標題: [發問] WebBrowser 自動新增問題 [打印本頁]

作者: mark15jill    時間: 2012-11-13 15:26     標題: WebBrowser 自動新增問題

問題說明:
若需新增 元件的話 有下列兩種型態
    Dim mycombobox As MSForms.ComboBox
    Dim myweb As New WebBrowser
可是 mycombobox 可以新增,myweb卻會出現類別錯誤
不曉得問題出在哪ˇˇ"

想要在三個 frame 內 新增...webbrowser...
大小和位置都和Frame相同


[attach]13115[/attach]

[attach]13114[/attach]

程式內 Webbrowser部份已刪除... 因會出現錯誤ˇˇ
  1. Private Sub UserForm_Initialize()
  2.   
  3.    
  4.     Dim myFrame1 As MSForms.frame
  5.     Dim mylabel As MSForms.Label
  6.     Dim mycombobox As MSForms.ComboBox
  7.     Dim myweb As New WebBrowser
  8.    
  9.     With UserForm1
  10.         .Width = 1340.25
  11.         .Height = 750
  12.         .StartUpPosition = 2
  13.             '動態新增Frame控件

  14.             '設置該Frame的名稱、高度、寬度、位置等
  15.             For sJ = 1 To (.Width - 40) Step ((.Width - 40) / 3) + 5
  16.                     Set myFrame1 = .Controls.Add("forms.Frame.1")
  17.                 With myFrame1
  18.                      .Left = 10 + sJ
  19.                      .Top = 90
  20.                      .Width = (UserForm1.Width - 40) / 3
  21.                      .Height = (UserForm1.Height - .Top - 30)
  22.                     ' .Caption = .Name
  23.                 End With
  24.    
  25.                  
  26.                 Set mylabel = .Controls.Add("forms.label.1")
  27.                 With mylabel
  28.                     .Left = 10 + sJ
  29.                     .Top = 10
  30.                     .Width = (UserForm1.Width - 40) / 3
  31.                     .BackColor = &HFCFCC0
  32.                     .Font.Size = 14
  33.                     .Height = .Font.Size + 1
  34.                 End With
  35.             
  36.                 Set mycombobox = .Controls.Add("forms.combobox.1")
  37.                 With mycombobox
  38.                     .Left = 10 + sJ
  39.                     .Top = 30
  40.                     .Width = (UserForm1.Width - 40) / 3
  41.                     .Height = 20
  42.                     .BackColor = &HFCFCC0
  43.                     .Font.Size = 12
  44.                 End With
  45.             
  46.             Next
  47.             
  48.                     
  49.                     
  50.     '區段3
  51.        Dim ct As Control
  52.         
  53.         For uw = 1 To 3
  54.             Select Case uw
  55.             
  56.                 Case 1
  57.                     With .Controls("frame" & uw)
  58.                         .Caption = .Name
  59.                     End With
  60.                     
  61.                     With .Controls("label" & uw)
  62.                         .Caption = .Name
  63.                          .TextAlign = 2
  64.                     End With
  65.                     With .Controls("combobox" & uw)
  66.                         .Text = .Name
  67.                          .TextAlign = 2
  68.                     End With

  69.                 Case 2
  70.                     With .Controls("frame" & uw)
  71.                         .Caption = .Name

  72.                     End With
  73.                     With .Controls("label" & uw)
  74.                         .Caption = .Name
  75.                          .TextAlign = 2
  76.                     End With
  77.                     With .Controls("combobox" & uw)
  78.                         .Text = .Name
  79.                          .TextAlign = 2
  80.                     End With
  81.                     
  82.                
  83.                 Case 3
  84.                     With .Controls("frame" & uw)
  85.                         .Caption = .Name

  86.                     End With
  87.                     With .Controls("label" & uw)
  88.                         .Caption = .Name
  89.                          .TextAlign = 2
  90.                     End With
  91.                     With .Controls("combobox" & uw)
  92.                         .Text = .Name
  93.                          .TextAlign = 2
  94.                     End With
  95.                     
  96.             End Select
  97.             
  98.             

  99.         Next


  100.     End With
  101. End Sub
複製代碼

作者: GBKEE    時間: 2012-11-13 15:59

回復 1# mark15jill
表單中新增 WebBrowser [Microsoft 網頁瀏覽器控制項]
  1. Set myweb = .Controls.Add("Shell.Explorer.2")
複製代碼

作者: mark15jill    時間: 2012-11-13 16:20

回復  mark15jill
表單中新增 WebBrowser [Microsoft 網頁瀏覽器控制項]
GBKEE 發表於 2012-11-13 15:59



    請問版大
這個怎和 我列的那兩種不同..
是呼叫 應用程式的關係嗎?
作者: GBKEE    時間: 2012-11-13 16:26

回復 3# mark15jill
控制項所屬的應用程式不一樣
Set myFrame1 = Controls.Add("forms.Frame.1") 這是表單的控制項
作者: mark15jill    時間: 2012-11-13 16:33

回復  mark15jill
控制項所屬的應用程式不一樣
Set myFrame1 = Controls.Add("forms.Frame.1") 這是表單 ...
GBKEE 發表於 2012-11-13 16:26



   
    版大 謝謝 這樣我了解了~~ 再次感謝

詢問另一個問題

以這段程式碼來說
                With myFrame1
                     .Left = 10 + sJ
                     .Top = 90
                     .Width = (UserForm1.Width - 40) / 3
                     .Height = (UserForm1.Height - .Top - 30)
                    ' .Caption = .Name
                End With

可是 若變成
                 Set myweb = .Controls.Add("Shell.Explorer.2")
                With myweb
'                     .Left = 10 + sJ
'                     .Top = 90
                     .Width = (UserForm1.Width - 40) / 3
                     .Height = (UserForm1.Height - .Top - 30)
                    ' .Caption = .Name
                End With

她顯示出來的 寬 和 高 都不會等於 myFrame的寬和高.. 這是為什麼?

而且 程式碼改成

                    Set myweb = .Controls.Add("Shell.Explorer.2")
                    With myweb
'                        .Top = 5
'                        .Left = 5
                        .Height = UserForm1.Controls("frame1").Height
                        .Width = UserForm1.Controls("frame1").Width
                    End With
                End With
呈現出來的效果仍然是 不等於 Frame1 的寬和高

請問要怎設定才能?


[attach]13117[/attach]
作者: GBKEE    時間: 2012-11-13 17:13

回復 5# mark15jill
改成這樣, 為何會如此尚未研究.
  1. Dim myweb As Object
複製代碼

作者: mark15jill    時間: 2012-11-13 17:17

回復 6# GBKEE


    因小弟想法很單純

既然 Frame  的
                      .Width = (UserForm1.Width - 40) / 3
                     .Height = (UserForm1.Height - .Top - 30)

那 如果設定 myweb 的
                        .Height = UserForm1.Controls("frame1").Height
                        .Width = UserForm1.Controls("frame1").Width

正常來說 應該  myweb.height 會等於 Frame.height  (如果依 設定的話)

但是 卻會出現如此大的差異,讓我有點好奇原因。




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)