<form id="hz9zz"></form>
  • <form id="hz9zz"></form>

      <nobr id="hz9zz"></nobr>

      <form id="hz9zz"></form>

    1. 明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

      怎么動態加載multiline的text控件

      [摘要]我剛開始在csdn的vb論壇里看到這個帖子的時候,想了很久都沒有找到解決方法。后來看zy910寫到“由于Edit控件的設定(只能在創建窗口時設置風格,創建后不能修改)所以TextBox的MultiL...
      我剛開始在csdn的vb論壇里看到這個帖子的時候,想了很久都沒有找到解決方法。后來看zy910寫到“由于Edit控件的設定(只能在創建窗口時設置風格,創建后不能修改)

      所以TextBox的MultiLine屬性實現原理是:先清除原有的Edit,再創建一個新的Edit

      這在設計時是可行的。但在運行時,會導致文本框相關數據的丟失,甚至會因不安全的代碼導致非法操作,所以M$將TextBox的MultiLine屬性設置成運行時只讀”,那么通過直接使用textbox控件是無法滿足要求的了。

      其實我們可以找到一個替代的方法,微軟給我們提供了一組無窗口控件庫。所謂“無窗口控件”是見名知義,是沒有無窗口,因而沒有hwnd屬性。這個庫在主要語言的參考文檔中沒有提到,它必須手工從common\Tools\vb\Winless目錄下安裝。安裝的方法是將這個目錄復制到硬盤上,用regsvr32或vb中對它進行注冊,然后雙擊Mswless.reg,它創建使activex控件對vb環境可用的注冊關鍵字。注冊完畢后,從按Ctrl+T從可用的Active控件列表中選取Microsoft Windowless Control 6來把函數庫加載到IDE中。

      使用windowless函數庫的好處是在運行時沒有內部控件的限制,事實上所有的屬性都可以在運行時改變。這個庫中包括TextBox的無窗口版—MSWLess.WLText。也就說我們可以通過動態加載這個控件,來實現動態添加multiline屬性的text控件。

      Dim WithEvents TxtEditor As MSWLess.WLText

      Private Sub Command1_Click()



      Set TxtEditor = Controls.Add("MSLess.WLText", "txtEdit")

      TxtEditor.MultiLine = True

      TxtEditor.ScrollBars = wlBoth

      TxtEditor.Move 0, 0, ScaleWidth, ScaleHeight

      TxtEditor.Visible = True



      End Sub

      注意:“工程屬性”中“刪除有關未使用的active控件的信息”的復選框不要選。



      日韩精品一区二区三区高清