Visual Basic .NET支持動態(tài)屬性,其動態(tài)屬性儲存在一個應(yīng)用程序配置文件中,該文件在應(yīng)用程序執(zhí)行時將會被讀到。使用動態(tài)屬性可以在不重新編譯應(yīng)用程序的情況下改變一些屬性值。你可以使用它們保存數(shù)據(jù)庫連接字符串、應(yīng)用程序日志信息或者服務(wù)器連接信息。
創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比播州網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式播州網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋播州地區(qū)。費用合理售后完善,10余年實體公司更值得信賴。
要看動態(tài)屬性的例子,首先在Visual Basic中創(chuàng)建一個Windows應(yīng)用程序。添加一個TextBox到默認(rèn)窗體中;確認(rèn)TextBox是被選中的,然后在屬性窗口中定位Dynamic屬性。
點擊Advanced標(biāo)簽旁邊的省略號按鈕,打開一個對話框,該對話框中列出了TextBox所有的屬性,選擇Text屬性,鍵映射框?qū)患せ?。鍵映射決定了鍵儲存在配置文件中的值。點擊確定關(guān)閉對話框。
Property用于標(biāo)識一個類成員為屬性而不是方法.屬性可以被獲取,屬性在被獲以的時候利用get句柄返回其值.屬性可以被賦值,這個過程是由set句柄完成的.這兩個句柄可以不同時存在.如果只有g(shù)et而沒有set,那屬性就是只讀的.如果只有set而沒有g(shù)et,那屬性就是只寫的.
就是定義了兩個屬性:s_name和s_sex
Overridable 表示這個屬性可以被重載。
當(dāng)用戶可以設(shè)置或者得到屬性的值的時候,這些屬性就在改變。有此屬性可以在設(shè)計的時候改變。用戶可以在屬性窗口設(shè)置這些屬性的值,而不需要寫任何代碼,而有些代碼在設(shè)計的時候是不能改變的,所以必須在運行的程序中寫入一些設(shè)置屬性的值的代碼。
那些可以在運行的時候設(shè)置和讀取的屬性被稱作"read-write"屬性。而那些只能在運行的時候讀取的代碼稱為"read-only"屬性。
1.設(shè)置屬性值
當(dāng)需要改變一個對象的外觀或者行為時,就可以改變對象的屬性值。例如可以通過改變一個textbox控件的Text屬性值,來改變Textbox里面的內(nèi)容。
設(shè)置一個屬性的值,可以用以下的語法:
object.property=expression
如下一些實例:
TextBox1.Top=200 '讓Top屬性值為200
TextBox1.Visible=True '顯示TextBox
TextBox1.Text="hello" '在TextBox中顯示"hello"
2.得到屬性的值
當(dāng)代碼要對一個對象進(jìn)行一些操作時,用戶可能需要得到一個對象的狀態(tài),例如,在對一個TextBox控件進(jìn)行下一步操作時,可能需要得知TextBox的text屬性的值,等等。
通常情況下,用戶可以通過下面這樣的語法得到一個對象的屬性值:
variable=object.property
用戶可以把一個對象的屬性值作為一個復(fù)雜表達(dá)式的一部分,而不需要先把屬性值賦給一個變量再進(jìn)行計算,下面這個例子就是改變一個radio按鈕的屬性的代碼:
Private Sub cmdAdd_Click()
'[statements]
RadioButton1.Top=RadioButton1.top+20
'[statements]
End Sub
注意:如果用戶需要多次使用一個屬性值的話,那么先把屬性值賦給一個變量,將會使效率更快一點。
用type關(guān)鍵字定義(VB.NET是Structure關(guān)鍵字)
或者定義一個class.VB6是類模塊,VB.NET就是class類
例(VB6)
type Point
X as Integer
Y as Integer
end type
條用 dim zuobiao as point
zuobiao.x=你想要的X
zuobiao.y=你想要的Y
VB.NET
Structure Point
Dim X As Integer
Dim Y As Integer
End Structure
條用,要先創(chuàng)建實例對象
Dim X As New Point
X.X = 0
X.Y = 0
注意下你給ButtonTop的Image屬性賦值的地方,你的屬性SET里是針對【上】這個類的改變,你如果這樣寫是觸發(fā)不了屬性改變的:
ButtonTop.背景?=?Image.FromFile("C:/1.png")
正確的處理辦法應(yīng)該是new一個【上】類的對象,初始化時進(jìn)行賦值就可以了
Me.ButtonTop?=?New?Class1()?With?{.背景?=?Image.FromFile("C:/1.png")}