25 Şubat 2010 Perşembe

C#.NET 2008 Örnek Kodlar - Renkli Buton Yaratmak


Merhaba, C# ile ilgimi çeken bazı kodları sizinle paylaşmak istiyorum. Sizlerinde ilginç örnekleriniz varsa benimle paylaşabilirsiniz. Bir tanesini http://www.csharpnedir.net/dotnettv/watch/?id=10&title=Windows%20Kontrolü%20Oluşturmak adresinden öğrendim. Sayın Oğuz Yağmur'un 2007 yılında yayınladığı video'dan bakarak öğrendiğim bir çalışma bu. Ben video'yu izleyerek yaptım, size de izlemenizi tavsiye ederim.
İşte tarifi :)
1. VS açın. Proje tipi olarak Windows Control Library'i seçin. Projenizi açın.
2. Açılan projedeki UserControl1.cs dosyasını silin.
3. Projenize Yeni bir "CustomControl1.cs" ekleyin (Add - New Items)
4. CustomCotrol'e isim verin. Ben renkliButon dedim.
5. Kod penceresinde aşağıdaki satırı bulun ve bir alttaki haliyle değiştirin.

public partial class CustomControl1 : Control // Control'ü silin
public partial class CustomControl1 : Button // onun yerine Button yazın

6. Kontrolümüze 4 adet public property ve bunların herbiri için private member'lar atayacağız. Aşağıdaki gibi:

// c1, c2, Saydam1 ve Saydam2 private
Color c1;
Color c2;

int Saydam1=64;
int Saydam2=64;

public Color Color1
{
get
{
return c1;
}
set
{
c1 = value;
Invalidate();
}
}

public Color Color2
{
get
{
return c2;
}
set
{
c2 = value;
Invalidate();
}
}

public int Saydamlik1
{
get
{
return Saydam1;
}
set
{
Saydam1 = value;
Invalidate();
}
}

public int Saydamlik2
{
get
{
return Saydam2;
}
set
{
Saydam2 = value;
Invalidate();
}
}
7. Şimdi de zaten var olan OnPaint() metoduna ilaveler yapacağız. Aşağıdaki gibi:
protected override void OnPaint(PaintEventArgs pe)
{
base.OnPaint(pe);

Color renk1 = Color.FromArgb(Saydam1, c1);
Color renk2 = Color.FromArgb(Saydam2, c2);

Brush LinBrush = new System.Drawing.Drawing2D.LinearGradientBrush(ClientRectangle, c1, c2, 235);
pe.Graphics.FillRectangle(LinBrush, ClientRectangle);
LinBrush.Dispose();
}

8. Tamamdır. Projenizi Build edin. Bin\Debug\ klasörünün altında renkliButon.dll'i görmeniz gerekiyor.

9. Bu kontrolü kullanmak için Başk abir C# projesinde önce Toolbox'ınıza ekleyin, sonra butonu form üzerine ekleyin. Color1 ve Color2 property'lerini değiştirerek sonucu görebilirsiniz.

Halil Ersoy

Hiç yorum yok: