Membuat Jam Analog pada VB.NET

MEMBUAT JAM ANALOG DENGAN VB NETKeteranganDi sinijam analog telah dibuat dengan perpustakaan kontrol VB.NETIni adalah kontrol jam yang memiliki hampir semua fungsionalitas bahwa jenis kontrol dapat memilikidan itu sepenuhnya dapat disesuaikanKarena ini adalah perpustakaan kontrol,Anda dapat menggunakannya dalam C + +C # proyekJ #, dan VB.NET dalam lingkunganNET.Saya membuat kontrol ini untuk membantu seseorang dalam VB ForumPada awalnya, itu adalah sebuah jam yang sangat sederhanatapi kemudian menjadi agak maju setelah saya menambahkan banyak propertiperistiwadan fungsi yang membuat jamsangat fleksibelTambah ComponentAkhirnyaAnda drag dan drop kontrol ke formulir AndaJugadalam rangka untuk melihat deskripsi dari sifat atau metode dalamDesigner KodeAnda harus menyalin "AnalogClockLib.xml" file ke dalam folder proyek anda.Latar belakangKontrol jam adalah UserControl Windows. Hampir semua elemen dari jam telah dibangun (inti dari elemen) dengan tipe data GraphicsPath. Mereka berisi anggota Basis Path-variabel yang merupakan GraphicsPath elemen. Ini Base-Jalan yang digunakan berbeda untuk setiap elemen. Misalnya, penanda Base-Path merupakan GraphicsPath dibangun di 12 posisi jam dan dibandingkan diputar menggunakan objek Matrix. Karena itu diputar hanya sekali, tidak ada kebutuhan kedepan benda pembantu lainnya. Jam tangan ini memiliki variabel anggota dua GraphicsPath Jenis: Base-jalan dan Shift-jalan. The Base-Jalan tangan selalu diposisikan pada 12 jam o ', dan hanya dibentuk kembali jika bentuk elemen (lebar, panjang, atau gaya) yang dimodifikasi. Di sisi lain, Shift-Path adalah GrapicsPath sebenarnya tangan pada waktu tertentu. Pergeseran-Path adalah salinan diputar Base-jalan.Menggunakan KodeMeskipun Anda dapat melakukan hampir semua hal dengan kontrol ini, saya akan menunjukkan Anda hanya bagaimana melukis jam tangan jam dengan PathGradientBrush a. Catatan, dalam mode ini, Anda bisa melukis elemen dengan sikat apapun.Hal ini sangat bagus untuk melihat gradien jam tangan itu, jadi di sini adalah bagaimana Anda bisa melakukan itu. Pada dasarnya, Anda mengeset properti Brush dari tangan ke objek yang baru dibuat gradien kuas dalam acara cat tangan '.Collapse | Copy Kode        E ByVal Sebagai AnalogClock.PaintEventArgs) Menangani Clock1.HourHandPainting
    
                            '                br.CenterColor = Color.White
        
                                br.SurroundColors = Warna Baru () {} Me.Clock1.HourHand.Color
        
                                e.Brush = br
        
                                br.Dispose ()
    
                End IfEnd SubDalam beberapa situasi, Anda mungkin perlu mengatur waktu jam ke waktu mulai. Untuk hal ini, kita perlu melakukan sedikit perhitungan dan mengatur properti UtcOffset sesuai. Berikut ini adalah bagaimana kita bisa melakukan itu:Collapse | Copy Kode    Dim CDT Sebagai DateTime = CDate ("# 17:20:35 #") 'Beberapa waktu awal kustom untuk jam.
    
                Dim utcDt Sebagai DateTime = 'DateTime.UtcNow The datetime UTC saat ini."Hal ini diperlukan karena jam kerja internal dengan UTC datetime.
    
                Me.Clock1.UtcOffset = New TimeSpan (0, cdt.Hour - utcDt.Hour, _
                             
                                                                                                                    cdt.Minute - utcDt.Minute, cdt.Second - utcDt.Second)Kadang-kadang orang bertanya padaku mengapa jam adalah satu jam off setelah daylight savings atau bagaimana kita bisa yakin bahwa jam menunjukkan waktu yang tepat selalu. Nah, jika hal ini terjadi pada anda, maka Anda perlu memastikan bahwa UtcOffset jam adalah selalu akurat. Ini adalah bagaimana Anda bisa melakukannya:Collapse | Copy KodePrivate Sub Form1_Load (ByVal sender Sebagai System.Object, _ByVal e Sebagai System.EventArgs) Menangani MyBase.Load
    
                'Set UTC offset untuk sistem utc diimbangi ketika beban aplikasi
    
                Me.Clock1.UtcOffset = TimeZone.CurrentTimeZone.GetUtcOffset (DateTime.Now)End SubPrivate Sub Clock1_TimeChanged (ByVal pengirim Sebagai System.Object, _E ByVal Sebagai System.EventArgs) Menangani Clock1.TimeChanged
    
                'Set UTC offset untuk sistem utc mengimbangi setiap perubahan waktu jam waktu.
    
                'Jika properti memiliki nilai yang sama akan melakukan apa-apa.
    
                Me.Clock1.UtcOffset = TimeZone.CurrentTimeZone.GetUtcOffset (DateTime.Now)End SubClocksImg.pngUntuk menggunakan kontrolAnda hanya perlu menambahkannya ke dalam Toolbox VS.NETKlik kanan di daerah Toolboxdan pilih"Pilih Produkitem menuIni kemudian akan membuka "Pilih Item ToolboxwindowAnda pergi ke direktori yang berisi"AnalogClockLib.dllfile dan pilihkemudian klik tombol OKIni akan menambah kontrol ke Toolbox.Private Sub Clock1_HourHandPainting (pengirim ByVal Sebagai Obyek, _"Pastikan grafis jalan jam tangan mengandung lebih dari 2 poin.
Jika Me.Clock1.HourHand.Path.PointCount> 2 LaluMembuat gradien jam tanganDim br Sebagai Drawing2D.PathGradientBrush Baru (Me.Clock1.HourHand.Path)

Private Sub Form1_Load (ByVal sender Sebagai System.Object, _ByVal e Sebagai System.EventArgs) Menangani MyBase.Load
End Sub


0 comments: