VB .NET

DoEvents K≤d
Velikost "klientskΘ" Φßsti formulß°e K≤d
Implicitnφ tlaΦφtko pro Enter a Esc K≤d
Deklarace pole K≤d
Kopφrovßnφ pole K≤d
╚tenφ textovΘho souboru K≤d
Ulo₧enφ textu do souboru K≤d
Velikost adresß°e K≤d

DoEvents

UrΦit∞ vÜichni znßte p°φkaz DoEvents z Visual Basicu 6 (pro ty, kdo neznajφ, p°φkaz zp∙sobφ provedenφ vÜech zprßv, kterΘ Φekajφ ve front∞). Kde najdete tuto funkci ve Visual Basicu .NET?

Je to metoda t°φdy Application, neboli System.Windows.Forms.Application.

Zp∞t na obsah


Velikost "klientskΘ" Φßsti formulß°e

Chcete-li znßt velikost "klientskΘ" Φßsti formulß°e, tj. plochy, kam m∙₧ete umφs¥ovat prvky, pou₧ijte vlastnost ClientSize. Vracφ objekt Size nastaven² na sprßvnou velikost (ve Visual Basicu 6 se dala zjistit Üφ°ka a v²Üka pomocφ ScaleWidth a ScaleHeight).

'Nastavenφ v²Üky PictureBoxu na celou v²Üku formulß°e
picDrawing.Height = Me.ClientSize.Height

Zp∞t na obsah


Implicitnφ tlaΦφtko pro Enter a Esc

Ka₧d² formulß° m∙₧e mφt definovßno jedno tlaΦφtko, jeho₧ udßlost Click se vyvolß na stisk klßvesy Enter (ve Visual Basicu 6 vlastnost tlaΦφtka Default) a jedno tlaΦφtko, jeho₧ udßlost Click se vyvolß na stisk klßvesy Escape (ve Visual Basicu 6 vlastnost tlaΦφtka Cancel).

Ve Visual Basicu .NET se tyto tlaΦφtka nastavujφ Vlastnostmi formulß°e AcceptButton a CancelButton.

Me.AcceptButton = Button1
Me.CancelButton = Button2

Zp∞t na obsah


Deklarace pole

Deklarace polφ probφhß ve podobn∞ jako ve Visual Basicu 6. Hlavnφ rozdφl je v definici poΦtu prvk∙. Ka₧dΘ pole ve Visual basicu .NET zaΦφnß indexem 0 (p°φkaz LBound stßle existuje, ale v₧dy vracφ hodnotu 0). Do zßvorek za nßzev prom∞nnΘ se stejn∞ jako ve verzi 6 pφÜe hornφ index pole. Tzn. ₧e p°φkaz

Dim myArray(5) As Integer

vytvo°φ pole se 6 prvky a indexy 0 a₧ 5 (p∙vodn∞ m∞la b²t deklarace opravena na zadßvßnφ poΦtu prvk∙ v poli, ale nakonec MS z∙stal u d°φv∞jÜφ deklarace).

Novinkou je mo₧nost zadat hned p°i deklaraci hodnoty pole. P°φkaz

Dim myArray() As Integer = {1, 2, 3}

vytvo°φ pole se t°emi prvky (indexy 0, 1, 2) a s hodnotami 1, 2 a 3. V tomto p°φpad∞ nenφ mo₧nΘ zadat rozsah pole, nastavφ se podle poΦtu zadan²ch hodnot. Pro dvourozm∞rnΘ pole by k≤d vypadal takto:

Dim myArray(,) As Integer = {{1, 10}, {2, 20}, {3, 30}}
Dim i As Long

'cyklus vypφÜe hodnoty druhΘ dimenze pole, tzn. 10, 20 a 30
For i = 0 To UBound(myArray, 1)
  Debug.WriteLine(myArray(i, 1))
Next

Zp∞t na obsah


Kopφrovßnφ pole

Pro kopφrovßnφ jednoho pole do druhΘho m∙₧ete pou₧φt t°i metody. T°φda Array mß dv∞ metody, Copy a CopyTo, kterΘ umo₧≥ujφ kopφrovßnφ bu∩ celΘho pole do druhΘho nebΘ jen Φßsti. Metoda CopyTo mß pouze dva parametry, do kterΘho pole kopφrovat (array) a od kterΘho indexu zaΦφt (index). Metoda Copy je p°etφ₧enß, mß dv∞ varianty. Prvnφ mß t°i parametry, zdrojovΘ pole, cφlovΘ pole a poΦet prvk∙ pro kopφrovßnφ, druhß je variabiln∞jÜφ, umo₧≥uje navφc zadat od kterΘho prvku zdrojovΘho pole zaΦφt kopφrovat a pozici, od kterΘ se bude vklßdat do cφlovΘho pole.

U obodu t∞chto metod si musφte hlφdat, aby m∞lo cφlovΘ pole dost mφsta, tzn. chcete-li kopφrovat pole s 5 prvky do pole se dv∞ma prvky, nastane chyba.

Dim myArray() As Integer = {1, 2, 3}
Dim myArray2(1) As Integer

'zde nastane chyba
myArray.CopyTo(myArray2, 0)

ProstΘ p°i°azenφ jednoho pole do druhΘho pomocφ = provede i pot°ebn² p°φkaz ReDim, tzn. v²Üe uveden² p°φkaz by skonΦil v po°ßdku.

Dim myArray() As Integer = {1, 2, 3}
Dim myArray2(1) As Integer

myArray2 = myArray

Toto p°i°azenφ se m∙₧e zdßt v²hodn∞jÜφ, ale takov² k≤d nebude velmi dob°e Φiteln².

Zp∞t na obsah


╚tenφ textovΘho souboru

Funkce LoadTextFile vrßtφ text ze souboru, zadanΘho jako parametr FilePath.

Function LoadTextFile(ByVal FilePath As String) As String
  Dim sr As System.IO.StreamReader

  Try
    sr = New System.IO.StreamReader(FilePath)
    LoadTextFile = sr.ReadToEnd()
  Finally
    If Not sr Is Nothing Then sr.Close()
  End Try
End Function

Zp∞t na obsah


Ulo₧enφ textu do souboru

Funkce SaveTextFile ulo₧φ textov² °et∞zec do souboru. Parametr FilePath urΦuje nßzev souboru s cestou, FileContent je text pro ulo₧enφ a parametr Append zda jde pouze o p°idßnφ textu do existujφcφho souboru nebo vytvo°enφ novΘho.

Function SaveTextFile(ByVal FilePath As String, ByVal FileContent As String, _
  Optional ByVal Append As Boolean = False) As Boolean

  Dim sw As System.IO.StreamWriter
  Try
    sw = New System.IO.StreamWriter(FilePath, Append)
    sw.Write(FileContent)
    Return True
  Catch e As Exception
    Return False
  Finally 
    If Not sw Is Nothing Then sw.Close()
  End Try
End Function

Zp∞t na obsah


Velikost adresß°e

Funkce GetDirectorySize vrßtφ velikost adresß°e zadanΘho v parametru DirPath v bajtech.

Function GetDirectorySize(ByVal DirPath As String) As Long
  Dim DirSize As Long
  Dim Dir As DirectoryInfo = New DirectoryInfo(DirPath)

  Dim ChildFile As FileInfo
  For Each ChildFile In Dir.GetFiles()
    DirSize += ChildFile.Length
  Next

  Dim SubDir As DirectoryInfo
  For Each SubDir In Dir.GetDirectories()
    DirSize += GetDirectorySize(SubDir.FullName)
  Next

  Return DirSize
End Function

Zp∞t na obsah