Vb.Net問題集 (轉貼於此)

來源:互聯網
上載者:User
問題   
作者:hejianzhong  

我來談一個自已不太懂的東西實在是不明智的,實在是沒有人來談,一個人默默的鑽研總是很難有所成就的。在網上打入一個VB6的命題,會找到無數的解決方案。.VB7外國已經出了好幾本很好的書,在國內總有些人不屑這個beta版。這篇拙作也只算一個”Beta”,”bug”肯定不少,看了別生氣,且作鋪路石,且作鋪路石。

一.VB7中調用不共用的方法,函數:

這個問題我在論壇發了好幾天文章,沒人願意回答。只好求助一些英文的常式。

有了結果,這個實在是很簡單。對於VB7也相當重要。因為在VB7中包括了幾乎

所有API,甚至於更強大的功能。有一些是可以很簡單的調用,如:

1,  設定表單的透明:Form1.Opacity = 0.89(可以設定為0.xx,Opacity的意思是不透明程度)

2,  展開Region " Windows Form Designer generated code "前面的+號你可以看到:

          Me.Text = "Form1" ‘設定表單的標題(VB7中以text代替caption)

Me.newform2.Location = New System.Drawing.Point (6, 14) ‘

設定表單的位置座標。

Me.BorderStyle = System.WinForms.FormBorderStyle.None

設定表單的外觀狀態

            Me.BackgroundImage = CType(resources.GetObject("$this.BackgroundImage"), System.Drawing.Image)。設定背景圖片

Me.ShowInTaskbar = False

設定是否出現在工作列

Me.ClientSize = New System.Drawing.Size(536, 408)

設定表單尺寸。

VB不提倡直接一修改Region " Windows Form Designer generated code ",

你應該在屬性框調節它們,但是利用這個原理,我們可以在LOAD事件中加入一些

代碼。

例如:dim fhwnd1=integer:( “:”是分行的作用) dim f1 as system.winforms.form

     然後定義f1的形狀,

      取得控制代碼,fhwnd1=f1.handle

      同理取得名柄fhwnd2

      拼合兩個表單,很容易一產生不規則表單

      當然winforms類的方法絕對不止這些,這隻是最簡單的了。

3:擷取一個圖片的資訊:form1.BackgroundImage.Width(圖片的寬度)

form1.BackgroundImage.Height(圖片的高度)

4.操作一個檔案:Dim filesam as System.IO.File = new System.IO.File ("sam.txt")

filesam.Delete,刪除檔案

             filesam.Copy()

             filesam.CopyTo()

             filesam.Create()

             filesam.CreateText()

等等。這些只要看一下大概就知道是什麼作用了,不再需要input,output了

所以我建議不要使用namespace(族名,或譯為名稱空間,這裡的空間實際上是一個類的組合。所以我稱為族名),這樣打入一個族名,打點,他的子類就會以提示方式列出。

在C#中使用using namespace VB中使用Imports namespace作用是一樣的。

現在的問題是有一些很重要的方法不會出現在子類的提示列表中(查一下class members)。這表示他是不共用的。

首先你應該在工程中調用他,而不要在模組中,要建立一個函數過程。要聲明一個新的對象,而不要直接地使用,如:

Public Function GetPixel(ByVal x As Integer, ByVal y As Integer) As system.Drawing.Color

            Dim BM As System.Drawing.Bitmap ,聲明一個對象

            bm = form1.BackgroundImage(BackgroundImage等同於vb6中的picture)

GETPIXEL = BM.GetPixel(X, Y)

注意這裡沒有使用return關鍵字傳回值,是基於常式的用法。

End Function

(有沒有發現vb7的基本文法變化並不是很大,不象人們傳說的可怕)

(WindowsMe因為改變太小而被人罵,VB7又因為改變太大被人罵,實在令人感慨)

然後: Private Sub Form_Load()

            

            Call SetRgn                                 

            Dim STRTEMP As String

            Dim pixcolor As System.Drawing.Color

            pixcolor = GetPixel(1, 1)

            STRTEMP = PIXCOLOR.ToString

            Stop ‘在中斷的一方,移動滑鼠停在STRTEMP變數上,可以看到返回了一個像素的RGB

End Sub

二.表單之間的資料轉送,

有時候我們想按下form1的BUTTON,改變form2的textbox.text。這在vb6中是很簡單的,在寫成form2.textbox.text=”xxxxx”的就行了,在vb7中卻不能這樣使用,這樣有些麻煩,但卻有利於封裝性的產生。在大型的軟體工程中,不至於因為類的相互緊密作用,導致調試的困難。例如一個表單無法unload,我們無法確定是哪一個類的引用不當造成。

你可以寫一個介面過程就象大部分叢vb6升級到vb7的軟體那樣。如:

Private Shared  m_vb6FormDefInstance As form1

         Public Shared  Property DefInstance() As form1

              Get

                   If m_vb6FormDefInstance Is Nothing Then

                       m_vb6FormDefInstance = New form1()

                   End If

                   DefInstance = m_vb6FormDefInstance

              End Get

              Set

                   m_vb6FormDefInstance = Value

              End Set

         End Property

這樣在form2中你可以寫form1.DefInstance.xxxx調用屬性。這大概算是一種相容的方法

實際上你應該這樣寫

在class form1中: Inherits System.WinForms.Form 一行的後面public fm as new form2

然後你可以象在vb6中一樣,使用fm.visible=true載入表單並在form1中控制他。

但是你卻不能這樣在form2中控制form1我想vb7是將form1作為預設的主表單

應該在form2中這樣寫:Public fmm as system.winforms.form=form1 雖然vb7聲稱這樣寫等同於Public fmm as form1 但這樣你會不成功。因為fmm的值為Null,如果使用 New form1那你會看到每調用一次會出現一個新的form1!!



相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。