Selamat datang di grafik jam winforms grafis, perpustakaan kode sumber terbuka.
Tujuan utama dari proyek ini adalah untuk menyediakan objek grafis "seperti jam" untuk pengembang C# dan VB.NET Winforms. perpustakaan terutama dirancang untuk aplikasi yang menyajikan data terhitung mengenai kinerja (misalnya dasbor penjualan perusahaan).
setiap objek jam memiliki beragam properti, digunakan untuk penyesuaian, jam dapat menyertakan animasi saat di-refresh atau dimuat.
Unduh versi terbaru BusinessClocks.dll ke komputer lokal Anda.
Anda selalu dapat menemukan versi terakhir di cabang master repositori.
Muat .dll ke proyek winforms Anda menggunakan Visual Studio.
Petunjuk untuk memuat dll ke dalam proyek Anda:
Using
(C#) atau Imports
(VB.NET) ke namespace BusinessClocks.ExecutiveClocks
di bagian atas File Form1
.Form1
.Contoh Tes C#
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using BusinessClocks.ExecutiveClocks;
namespace WindowsFormsApplication19
{
public partial class Form1 : Form
{
private BusinessClocks.ExecutiveClocks.CarClock carClock;
private GoalsClock goalsClock;
private WaitClock waitClock;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
carClock = new BusinessClocks.ExecutiveClocks.CarClock(300, 150, 0.8F, true);
carClock.ShowInnerCutForPerformance = false;
carClock.BarBackColor = Color.Pink;
carClock.Create(true);
this.Controls.Add(carClock.ClockPanel);
goalsClock = new GoalsClock(200, 200, 0.8F);
goalsClock.Create(true);
goalsClock.Clock.Location = new Point(0, carClock.ClockPanel.Location.Y + carClock.ClockPanel.Height + 5);
this.Controls.Add(goalsClock.Clock);
waitClock = new WaitClock(150, 150, "Loading...");
waitClock.Clock.Location = new Point(0, goalsClock.Clock.Location.Y + goalsClock.Clock.Height + 5);
waitClock.LoadFont("ARIAL", 8, FontStyle.Regular);
waitClock.SetArrayColors(new Color[] { Color.FromArgb(0, 100, 100), Color.FromArgb(0, 136, 136), Color.FromArgb(0, 170, 170), Color.FromArgb(0, 204, 204) });
waitClock.OuterCircleWeight = 8;
waitClock.InnerCircleWeight = 5;
waitClock.Create(true);
this.Controls.Add(waitClock.Clock);
}
}
}
Contoh Tes Visual Basic.NET
Imports BusinessClocks.ExecutiveClocks
Public Class Form1
Private carClock As BusinessClocks.ExecutiveClocks.CarClock
Private goalsClock As GoalsClock
Private waitClock As WaitClock
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' car clock (with precentage bar)
carClock = New BusinessClocks.ExecutiveClocks.CarClock(300, 150, 0.8, True)
carClock.ShowInnerCutForPerformance = False
carClock.BarBackColor = Color.Pink
carClock.Create(True)
Me.Controls.Add(carClock.ClockPanel)
' goals clock
goalsClock = New GoalsClock(200, 200, 0.8)
goalsClock.Create(True)
goalsClock.Clock.Location = New Point(0, carClock.ClockPanel.Location.Y + carClock.ClockPanel.Height + 5)
Me.Controls.Add(goalsClock.Clock)
' waitclock
waitClock = New WaitClock(150, 150, "Loading...")
waitClock.Clock.Location = New Point(0, goalsClock.Clock.Location.Y + goalsClock.Clock.Height + 5)
waitClock.LoadFont("ARIAL", 8, FontStyle.Regular)
waitClock.SetArrayColors(New Color() {Color.FromArgb(0, 100, 100), Color.FromArgb(0, 136, 136) _
, Color.FromArgb(0, 170, 170), Color.FromArgb(0, 204, 204)})
waitClock.OuterCircleWeight = 8
waitClock.InnerCircleWeight = 5
waitClock.Create(True)
Me.Controls.Add(waitClock.Clock)
End Sub
End Class
Catatan: Semua jam (WaitClock dan CarClock untuk saat ini) mewarisi GoalsClock
Properti:
Clock:
Contoh objek grafik yang mewakili jam, diinisialisasi setelah Create()
dipanggil.ClockWidth
: Mendapatkan atau Mengatur lebar jam.ClockHeight
: Mendapatkan atau Mengatur ketinggian jam.xPos
dan Ypos
: Mendapatkan posisi x atau y dari persegi panjang yang berisi jam.ClockBackGroundColor
: Mendapatkan atau mengatur warna latar belakang jam.FontColor
: Mendapatkan atau menyetel warna font teks yang menjelaskan persentase PercentOfGoals
.ClockFont
: Mendapatkan atau menyetel font teks yang menjelaskan persentase PercentOfGoals. Harap dicatat:font
karena pengambil properti ini memanggil fungsi LoadFont()
untuk menghitung ukuran dan gaya font yang sesuai dengan ukuran jam menggunakan elgoritem internal.LoadFont()
untuk mengatur ulang font.InnerCircleColor
: Mendapatkan atau mengatur warna busur bagian dalam.InnerCircleWeight
: Mendapatkan atau menyetel bobot piksel (lebar) busur bagian dalam.OuterCircleColor
: Mendapatkan atau mengatur warna busur luar.OuterCircleWeight
: Mendapatkan atau menyetel bobot piksel (lebar) busur luar.PercentOfGoals
: Mendapatkan atau menetapkan nilai jam. misalnya nilai 0,1F = 10%, nilai 0,5F = 50%, nilai 1,1F = 110% dst...GoalsPercentDecimalValue
: Mendapatkan nilai desimal jam.Animate
(bidang): Mendapatkan atau menetapkan nilai yang menunjukkan apakah animasi akan diaktifkan atau tidak.AnimationLength
: Mendapatkan atau menyetel kecepatan animasi (milidetik) berdasarkan Pencacahan AnimationLength: SuperFast = 1, Fast = 4, ModerateFast = 8, Moderate = 15, ModerateSlow = 28, Slow = 50, SuperSlow = 80.TimerInterval
: Mendapatkan atau mengatur interval tick untuk timer internal. nilai yang direkomendasikan adalah 4 (default) untuk mempercepat waktu penyegaran, gunakan nilai yang lebih rendah.Metode:
Create(ByVal AnimateClock As Boolean)
: Menginisialisasi objek jam, harus dipanggil setelah semua properti disetel (harap diperhatikan pengembang: metode ini Dapat Ditimpa/Virtual).RefreshClock(ByVal AnimateClock As Boolean)
: Menyegarkan dan menggambar ulang grafik objek jam, panggil metode ini setelah Anda mengubah properti (PercentOfGoals, InnerCircleColor misalnya). Sebagian besar properti jam akan memanggil metode ini ketika nilainya diubah. (pengembang harap diperhatikan: metode ini Dapat Ditimpa / Virtual).LoadFont()
: Mengembalikan ukuran dan gaya font yang sesuai dengan ukuran jam menggunakan elgoritem internal.LoadFont()
untuk mengatur ulang font.Dispose()
: Metode ini diimplementasikan dari IDisposable Interface (dalam perakitan mscorlib.dll), ketika objek jam dipanggil akan dibuang dan semua Objek GDI akan dibebaskan dari memori.Properti:
ClockPanel
(bidang): digunakan untuk memuat di dalam objek Clock
jika bilah teks diperlukan. Penting: Ketika BaseBar = True
objek Clock
akan dihosting di dalam ClockPanel
untuk menampilkan bilah teks kinerja di bawah jam.BaseBar = True
gunakan kontrol ini (dan bukan properti Jam) untuk mendapatkan jam dengan bilah teks.BaseBar = False
tidak pernah menggunakan properti ini, hasilnya adalah NullReferenceException
karena tidak akan diinisialisasi (Harap baca edisi 6 yang dibuka oleh pengguna lordofscripts: #6). LowPerformance
: Mendapatkan atau menetapkan indikasi kinerja rendah, properti ini terikat dengan properti LowPerFormanceColor dan nilainya akan mengatur area grafis jam kinerja rendah dengan warna LowPerFormanceColor .
MediumPerformance
: Mendapatkan atau menetapkan indikasi kinerja Medium, properti ini diikat ke properti MediumPerFormanceColor dan nilainya akan mengatur area grafis jam kinerja Medium dengan warna MediumPerFormanceColor .
HighPerformance
: Mendapatkan atau menyetel indikasi untuk Performa tinggi, properti ini diikat ke properti HighPerFormanceColor dan nilainya akan mengatur area grafis jam performa tinggi dengan warna HighPerFormanceColor .
HighPerFormanceColor
: Mendapatkan atau menyetel area grafis Performa tinggi di jam dengan warna yang dipilih (diikat ke properti HighPerFormance
).
MediumPerFormanceColor
: Mendapatkan atau menyetel area performa medium grafis di jam dengan warna yang dipilih (diikat ke properti MediumPerformance
).
LowPerFormanceColor
: Mendapatkan atau menyetel area grafis berkinerja rendah di jam dengan warna yang dipilih (diikat ke properti LowPerformance
).
NeedleBaseColor
: Mendapatkan atau mengatur warna latar belakang dasar jarum (jarum jam).
NeedleBaseWeight
: Mendapatkan atau mengatur berat piksel (ketebalan) dasar jarum (jarum jam).
NeedleOuterColor
: Mendapatkan atau mengatur warna latar belakang area jarum luar (jarum jam).
NeedleOuterWeight
: Mendapatkan atau menyetel bobot piksel (ketebalan) area jarum luar (jarum jam).
NeedleInnerColor
: Mendapatkan atau mengatur warna latar belakang area jarum bagian dalam (jarum jam).
NeedleInnerWeight
: Mendapatkan atau menyetel bobot piksel (ketebalan) area jarum bagian dalam (jarum jam).
ShowInnerCutForPerformance
: Mendapatkan atau menetapkan nilai yang menunjukkan apakah potongan dalam visual (garis miring) yang mewakili kinerja akan digambar di tengah batas jam.
InnerCutPreformanceColor
: Mendapatkan atau menyetel warna potongan bagian dalam visual (garis miring) yang mewakili performa di tengah batas jam.
InnerCutPerformanceWeight
: Mendapatkan atau menyetel bobot (ketebalan) potongan bagian dalam (garis miring) yang mewakili kinerja di tengah batas jam.
BarFont
: Mendapatkan atau menyetel font teks yang menjelaskan persentase PercentOfGoals.
BarBackColor
: Mendapatkan atau menyetel warna latar belakang bilah kinerja.
BarForeColor
: Mendapatkan atau mengatur warna font bilah kinerja.
BarValueDigitsForeColor
: Mendapatkan atau menyetel warna font label maks (100%) dan min (0%).
BarValueDigitsBackColor
: Mendapatkan atau menyetel warna latar belakang label maks (100%) dan min (0%).
BarValueDigitsFont
: Mendapatkan atau menyetel font label maks (100%) dan min (0%).
Properti:
waitText
: Mendapatkan atau menyetel teks di tengah jam. Metode:
SetArrayColors(ByVal arrayOfColors() As Color)
: Menyetel rangkaian warna yang akan berubah setelah setiap rotasi 360 derajat. .dll ditulis dalam VB.NET.
Anda juga dapat menggunakannya dengan proyek C#.
Dua contoh identik ditambahkan, untuk C# dan untuk VB.NET.
Ini adalah proyek sumber terbuka: Kode Sumber
Kami menggunakan SemVer untuk pembuatan versi.
Kelas dasar GoalsClock memiliki bidang konstanta Version
: gunakan untuk memeriksa nomor versi perpustakaan.
Ruas ini masih dalam tahap pembangunan, dalam waktu singkat
Di sini Anda akan menemukan penjelasan dan contoh untuk pengembang yang ingin mengambil bagian dalam proyek dan menulis grafik jam mereka sendiri.
WaitClock
kepada pengguna saat aplikasi menjalankan tugas panjang di latar belakang menggunakan utasContoh Kode C# Dengan Komentar:
/*
**************************************************************************
* AUTHOR: Jonathan Applebaum *
* DESCRIPTION: An example that describes how to use WaitClock object *
* from another thread in order to execute a long task in the beckground *
* DATE: 06/01/2017 *
* ************************************************************************
*/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using BusinessClocks.ExecutiveClocks;
namespace WindowsFormsApplication19
{
public partial class Form1 : Form
{
private WaitClock waitClock;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
// show wait clock on a different thread until LongTask finish executing
System.Threading.Thread waitThread = new System.Threading.Thread(LoadWaitClock);
waitThread.Start();
// start a new thread to execute LongTask() parallel to the waitThread
System.Threading.Thread longTaskThread = new System.Threading.Thread(LongTask);
longTaskThread.Start();
}
// put the code of your task that you want to execute in the background in that method
private void LongTask()
{
// loop to represent a long task
for (int i = 0; i < 10; i++)
{
System.Threading.Thread.Sleep(1000);
}
// the "long task" inside the method finished to execute - dispose the wait clock from the GUI
panel1.Invoke(new Action(waitClock.Dispose));
// promt to screen
label1.Invoke(new Action(NotifyTaskHasFinished));
}
private void LoadWaitClock()
{
// use action delegate to update GUI changes from another thread
panel1.Invoke(new Action(AddClock));
}
private void AddClock()
{
// configure and initilize the clock
waitClock = new WaitClock(120, 120, "Loading...");
waitClock.ClockBackGroundColor = Color.White;
waitClock.FontColor = Color.Black;
waitClock.Clock.Location = new Point(5, 5);
waitClock.LoadFont("ARIAL", 8, FontStyle.Regular);
waitClock.SetArrayColors(new Color[] { Color.FromArgb(0, 100, 100), Color.FromArgb(0, 136, 136), Color.FromArgb(0, 170, 170), Color.FromArgb(0, 204, 204) });
waitClock.OuterCircleWeight = 8;
waitClock.InnerCircleWeight = 5;
waitClock.Create(true);
this.panel1.Controls.Add(waitClock.Clock);
}
private void NotifyTaskHasFinished()
{
label1.Text = "LongTask() method has finished";
}
}
}
Contoh Kode Visual Basic.NET Dengan Komentar:
' **************************************************************************
' * AUTHOR: Jonathan Applebaum *
' * DESCRIPTION: An example that describes how To use WaitClock Object *
' * from another thread in order to execute a long task in the beckground *
' * DATE: 06/01/2017 *
' * ************************************************************************
Imports BusinessClocks.ExecutiveClocks
Public Class Form1
Private waitClock As WaitClock
Private Sub Form1_Load_1(sender As Object, e As EventArgs) Handles MyBase.Load
Dim waitThread As System.Threading.Thread = New System.Threading.Thread(AddressOf LoadWaitClock)
waitThread.Start()
Dim longTaskThread As System.Threading.Thread = New System.Threading.Thread(AddressOf LongTask)
longTaskThread.Start()
End Sub
Private Sub LongTask()
For i As Integer = 0 To 9
System.Threading.Thread.Sleep(1000)
Next
Panel1.Invoke(New Action(AddressOf waitClock.Dispose))
Label1.Invoke(New Action(AddressOf NotifyTaskHasFinished))
End Sub
Private Sub LoadWaitClock()
Panel1.Invoke(New Action(AddressOf AddClock))
End Sub
Private Sub AddClock()
waitClock = New WaitClock(120, 120, "Loading...")
waitClock.ClockBackGroundColor = Color.White
waitClock.FontColor = Color.Black
waitClock.Clock.Location = New Point(5, 5)
waitClock.LoadFont("ARIAL", 8, FontStyle.Regular)
waitClock.SetArrayColors(New Color() {Color.FromArgb(0, 100, 100), Color.FromArgb(0, 136, 136), Color.FromArgb(0, 170, 170), Color.FromArgb(0, 204, 204)})
waitClock.OuterCircleWeight = 8
waitClock.InnerCircleWeight = 5
waitClock.Create(True)
Me.Panel1.Controls.Add(waitClock.Clock)
End Sub
Private Sub NotifyTaskHasFinished()
Label1.Text = "LongTask() method has finished"
End Sub
End Class