MCTS Programming

www.SarafMoghadam.Com

MCTS Programming

www.SarafMoghadam.Com

تغییر زبان ویندوز در هنگام اجرای برنامه

برای تغییر زبان ویندوز از قطعه کد زیر استفاده کنید


InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(New System.Globalization.CultureInfo("fa-IR"))



اگر این کد در FormLoad برنامه قرار گیرد زبان ویندوز برای این فرم فارسی میشود

نوشتن فرم های چند زبانه و تغییر نوشتار کنترل ها در زمان اجرا

  • ابتدا در فسمت property فرم Localizable آنرا True کنید

  • کنترل های مورد نظر خود را به فرم اضافه نمایید.
  • برچسب های نام های انگلیسی کنترل ها را بنویسید (منظور خاصیت Text آنها را به دلخواه تغییر دهید)

  • Language آنرا به زبان فارسی تغییر دهید


  • حال برچسب کنترل ها را با زبان فارسی بنویسید و جای آنها را به سلیقه خود تغییر دهید

  • توجه داشته باشید در صورتیکه بخواهید کنترل جدید به فرم اضافه نمایید باید Language فرم (Default) باشد
  • NameSpace های زیر را به اول برنامه اضافه نمایید:
Imports System.Globalization
Imports System.Threading
Imports System.ComponentModel
  • از تابع زیر برای تغییر زبان فرم خود استفاده نمایید

    Private Sub ChangeLanguage(ByVal lang As String)
        For Each c As Control In Me.Controls
            Dim resources As ComponentResourceManager = New ComponentResourceManager(GetType(Form1))
            resources.ApplyResources(c, c.Name, New CultureInfo(lang))
        Next c
    End Sub

  • برای استفاده از تابع تغییر زبان به صورت زیر عمل نمایید
ChangeLanguage("en") ' برای زبان انگلیسی
ChangeLanguage("fa-IR") ' برای زبان فارسی

سریالایز کردن داده ها

برای ذخیره داده ای که میخواهیم آنرا انتقال دهیم.


3 نوع، میتوانیم داده ها را سریالایز کنیم

  1. binary
  2. SOAP
  3. Extensible Markup Language - XML


Imports System.Runtime.Serialization.Formatters.Binary

Dim data As String = "This must be stored in a file."

Dim fs As FileStream = New FileStream("SerializedString.Data",FileMode.Create)

Dim bf As BinaryFormatter = New BinaryFormatter

bf.Serialize(fs, data)

fs.Close

متغیر های Generic Collections

برای استفاده از generic collections ممکن است که نیاز به رابط هایی داشته باشم

مانند Sort کردن ListArray که نیاز به IComparable دارد.

این مبحث را فردا کامل میکنم


    Public Class person
        Implements IComparable
        Private firstName As String
        Private lastName As String
        Public Function CompareTo(ByVal obj As Object) _
        As Integer Implements System.IComparable.CompareTo
            Dim otherPerson As person = DirectCast(obj, person)
            If Me.lastName <> otherPerson.lastName Then
                Return Me.lastName.CompareTo(otherPerson.lastName)
            Else
                Return Me.firstName.CompareTo(otherPerson.firstName)
            End If
        End Function
        Public Sub New(ByVal _firstName As String, ByVal _lastName As String)
            firstName = _firstName
            lastName = _lastName
        End Sub
        Public Overrides Function ToString() As String
            Return firstName + " " + lastName
        End Function
    End Class



Dim l As New List(Of person)()
        l.Add(New person("Mark", "Hanson"))
        l.Add(New person("Kim", "Akers"))
        l.Add(New person("Zsolt", "Ambrus"))
        l.Sort()
        For Each p As person In l
            Console.WriteLine(p.ToString())
        Next

مثال استفاده از ArrayList

ساخت کارت فروش فروشگاهی با استفاده از ArrayList

بعد از ساخت پروژه جدید و اضافه کردن یک Button و یک ListBox به فرم اصلی یک کلاس به نام ShoppingCartItem به صورت زیر درست میکنیم


Public Class ShoppingCartItem
     Public itemName As String
     Public price As Double
     Public Sub New(ByVal _itemName As String, ByVal _price As Double)
          Me.itemName = _itemName
          Me.price = _price
     End Sub
End Class


namespace زیر را به فرم اصلی برنامه اضافه میکنیم:

Imports System.Collections


در رویداد کلیک دکمه اضافه شده به فرم کد های زیر را مینویسم



Dim shoppingCart As New ArrayList()

shoppingCart.Add(New ShoppingCartItem("Car", 5000))
shoppingCart.Add(New ShoppingCartItem("Book", 30))

shoppingCart.Add(New ShoppingCartItem("Phone", 80))
shoppingCart.Add(New ShoppingCartItem("Computer", 1000))
For Each
sci As ShoppingCartItem In shoppingCart
     Listbox1.Items.Add(sci.itemName & ": " & sci.price.ToString())
Next


خروجی به شکل زیر خواهد بود:



حالا برای مرتب کردن ( Sort ) هم باید از رابط (اینترفیس) IComparable استفاده کنیم، کلاس خود را به شکل زیر تبدیل میکنیم


Public Class ShoppingCartItem
    Implements IComparable
    Public itemName As String
    Public price As Double
    Public Sub New(ByVal _itemName As String, ByVal _price As Double)
        Me.itemName = _itemName
        Me.price = _price
    End Sub
    Public Function CompareTo(ByVal obj As Object) As Integer Implements System.IComparable.CompareTo
        Dim otherItem As ShoppingCartItem = DirectCast(obj, ShoppingCartItem)
        Return Me.price.CompareTo(otherItem.price)
    End Function
End Class

مرتب سازی بر اساس price است.

حال میتوانیم در برنامه اصلی آیتم های خود را از کوچک به بزرگ و یا بزرگ به گوچک مرتب کنیم


shoppingCart.Sort()

shoppingCart.Reverse()