Event - Delegate Örnekleri etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
Event - Delegate Örnekleri etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
6 Haziran 2013 Perşembe
C Sharp Uygulamalar Event Delegate Kullanarak Formlar Arasında Olay Tetikleme
KONU : C Sharp Uygulamalar - C Sharp ( C# ) form event delegate kullanarak olay tetikletme ve olayı bir metoda bağlama.
11 Mayıs 2013 Cumartesi
C Sharp Uygulamalar Buton Tıklanma Sayısını Hesaplama
KONU : C Sharp Uygulamalar - C Sharp ( C# ) forma eklenen butonun kaç kere tıklandığını gösteren uygulama. Dinamik olarak form buton ekleme ve tıklanma olayı atama (button click event). Tıklama sayısını mesaj kutusu ile gösterme.
UYGULAMAYI İNDİR
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace C_Sharp_Form_Buton_Kac_Kere_Tiklandi
{
public partial class Buton_Kac_Kere_Tiklandi : Form
{
public Buton_Kac_Kere_Tiklandi()
{
InitializeComponent();
InitializeMyComponent();
}
//global bir değişken tanımla
int butona_kac_kez_tıklandi = 0;
private void Form1_Load(object sender, EventArgs e)
{
Button buton = new Button();
// bir tane buton örneği alarak yeni bir buton oluşturalım
buton.Name = "yeni_buton"; // buton yeni_buton ismini verelim
buton.Text = "Tıkla"; //butonun Text ine Tıkla ismini verelim
buton.Location = new Point(22, 22);
// butonun formda yer leşim yeri olarak x=22, y=22 noktasına
//yerleştirelim
buton.Size = new Size(50, 50); // butonu boyutlarını ayarlayalım
//oluşturulan butonu forma ekleyelim
this.Controls.Add(buton);
buton.Visible = false;// butonun görünmesini istemiyorsak visible özelliğini false yap
buton.Visible = true;// butonun görünmesini istiyorsak visible özelliğini true yap
// butona click event(click olayı bağlama)
// butona tıklandığı zaman yapılacak işlemleri
// buton_Click isimdeki metoduna yazılır.
// bu olay olduğunda buradaki işlemler gerçekleştirilir
buton.Click += new EventHandler(buton_Click);
}
//buton tıklandığı zaman çalışak fonksiyon
private void buton_Click(object sender, EventArgs e)
{
//Butona tıklandığında bu method içindeki işlemler yapılacak
// buton her tıklandığında bu metod çalışacak
// burada değişkeni bir artır
butona_kac_kez_tıklandi++;
//tıklanma sayısı tutmak için bu değişkeni her seferinde bir arttır
//mesaj olarak buton kaç kere basıldığını göster.
MessageBox.Show("Butona basıldı. \n toplam tıklanma sayısı = " + butona_kac_kez_tıklandi, "Uyarı", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
private void InitializeMyComponent()
{
// ana pencereyi oluştumak için gerekli olan kod.
this.SuspendLayout();
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(437, 296);
this.Name = "Buton_tiklanma_sayisi";
this.Text = "Butona kaç kere tıklandığını hesaplama";
this.Load += new System.EventHandler(this.Form1_Load);
this.ResumeLayout(false);
}
}
}
5 Nisan 2013 Cuma
C Sharp Uygulamalar Event - Delegate Tanımlama ve Tetikleme
KONU : C Sharp Uygulamalar - C sharp form Event - Delegate örnek uygulama, Dinamik olarak yeni form açma, yeni formlar arası olay (event) kullanarak bağlantı kurma
ETİKETLER: csharp event - csharp event handler - csharp events - csharp event example - csharp event and delegate - csharp event add - csharp delegate - csharp delegate kullanımı - csharp delegate nedir - csharp delegate event - csharp delegate example - csharp delegate örnekleri - csharp event örnekleri - csharp form event - csharp delegate vs event - c# event - c# event kullanımı - c# event example - c# delegate - c# delegate kullanımı - c# delegate example - c# delegate örnekleri.
UYGULAMAYI İNDİR
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace C_Sharp_Form_Delegate_Events
{
public partial class Delegate_Events_Form : Form
{
private int formNo = 0;
private System.Windows.Forms.Button btnYeniFormAc;
//delege tanımlama
public delegate void delegateDeneme(int formNumarasi);
// olay tanımlama
public event delegateDeneme eventDeneme;
public Delegate_Events_Form()
{
InitializeComponent();
InitializeMyComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
this.eventDeneme += new delegateDeneme(Form1_eventDeneme);
}
public void yeniFormAc()
{
//yeni bir form oluştur
MyForm form = new MyForm();
//her açılan form yeni bir id verelim
//böylece hangi butonu tıklandığını tespit edebiliriz
form.formNo = this.formNo++;
//form da bir tane dinamik buton oluşturalım
Button btn = new Button();
btn.Text = "Aktifleştir";
btn.Name = form.formNo.ToString();
btn.Size = new Size(100, 30);
btn.Click += new EventHandler(btn_Click);
//oluşturduğumuz bu butonu dinamik oluşturduğumyz forma ekleyelim
form.Controls.Add(btn);
//form için icon yükle
form.Icon = C_Sharp_Form_Delegate_Events.Properties.Resources.Turkiye;
//dinamik oluşan formu göster
form.Show();
}
void btn_Click(object sender, EventArgs e)
{
//oluşturulan butonun tıklama olayı yazdığımız olayı tetiklesini istiyoruz
eventDeneme(int.Parse((sender as Button).Name));
}
void Form1_eventDeneme(int formNumarasi)
{
MessageBox.Show("Acilan form no = " + formNumarasi);
}
private void btnYeniFormAc_Click(object sender, EventArgs e)
{
yeniFormAc();
}
private void InitializeMyComponent()
{
this.btnYeniFormAc = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// btnYeniFormAc
//
this.btnYeniFormAc.Location = new System.Drawing.Point(72, 21);
this.btnYeniFormAc.Name = "btnYeniFormAc";
this.btnYeniFormAc.Size = new System.Drawing.Size(131, 47);
this.btnYeniFormAc.TabIndex = 0;
this.btnYeniFormAc.Text = "Yeni Form Aç";
this.btnYeniFormAc.UseVisualStyleBackColor = true;
this.btnYeniFormAc.Click += new System.EventHandler(this.btnYeniFormAc_Click);
//
// Form1
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(273, 180);
this.Controls.Add(this.btnYeniFormAc);
this.Name = "Form1";
this.Text = "Ana Form";
this.Load += new System.EventHandler(this.Form1_Load);
this.ResumeLayout(false);
}
}
public class MyForm : Form
{
public int formNo { get; set; }
}
}
18 Mart 2013 Pazartesi
C Sharp Form Uygulamalar Çoklu İş Parçacığı Oluşturma
KONU : C Sharp ( C# ) Form Uygulamalar çoklu iş parçacığı oluşturma, cross thread problemini giderme, C sharp aynı anda aynı kontrolü kullanan başka bir thread başlatma, Cross thread sorununu kontrolün invoke methodu ve delegate kullanarak çözme, C sharp multithread oluşturma.
UYGULAMAYI İNDİR
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Threading;
namespace C_Sharp_Form_Coklu_Is_Parcacık_Olusturma
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//iki farklı thread
Thread thread1, thread2;
bool threadBasladi = false;
private void button1_Click(object sender, EventArgs e)
{
if (threadBasladi)
{
thread1.Abort();
thread2.Abort();
}
threadBasladi = true;
//thread lerin başladığında çalışacak olan methodlar
ThreadStart threadstart1 = new ThreadStart(sayMethod1);
ThreadStart threadstart2 = new ThreadStart(sayMethod2);
//thread leri oluşturma
thread1 = new Thread(threadstart1);
thread2 = new Thread(threadstart2);
//thread isimleri
thread1.Name = "Thread 1";
thread2.Name = "Thread 2";
//threadlere verilen öncelik(thread priority)
thread1.Priority = ThreadPriority.Normal;
thread2.Priority = ThreadPriority.Normal;
//Thread verilebilecek öncelikler:
//ThreadPriority.AboveNormal;
//ThreadPriority.BelowNormal;
//ThreadPriority.Highest;
//ThreadPriority.Lowest;
//ThreadPriority.Normal;
//Thread leri başlatma
thread1.Start();
thread2.Start();
}
/// /// Birinci Thread ile başlatılan method, Cross Thread olayını önlemek için invoke ile method /// uygun olana kadar tekrar çağırılır ///
void sayMethod1()
{
if (this.InvokeRequired)
{
this.Invoke(new DelegateStandardPattern(sayMethod1));
}
else
{
for (int i = 0; i < 1000; i++)
{
listBox1.Items.Add(thread1.Name + " - " + i);
}
}
}
/// /// İkinci Thread ile başlatılan method, Cross Thread olayını önlemek için invoke ile method /// uygun olana kadar tekrar çağırılır ///
void sayMethod2()
{
if (this.InvokeRequired)
{
this.Invoke(new DelegateStandardPattern(sayMethod2));
}
else
{
for (int i = 0; i < 1000; i++)
{
listBox1.Items.Add(thread2.Name + " - " + i);
}
}
}
public delegate void DelegateStandardPattern();
private void SetTextStandardPattern()
{
if (this.InvokeRequired)
{
this.Invoke(new DelegateStandardPattern(SetTextStandardPattern));
return;
}
this.Text = "New Text";
}
private void Form1_Load(object sender, EventArgs e)
{
//multi tread yaparken karşılan problem
//Cross call hatası almamak için => bu değer false yapılır
//Çapraz iş parçacığı işlemi geçerli değil: 'listBox1'
//denetimine oluşturulduğu iş parçacığı dışında başka bir
//iş parçacığından erişildi.
//CheckForIllegalCrossThreadCalls = false;
// Ama bu doğru işlem değildir.
// Uygun bir patern kullanılmalıdır. Yukarıdaki gibi kontrol invoke methodu ile
//işlem yapılacak method tekrar çağırılır.
}
}
}
Kaydol:
Kayıtlar
(
Atom
)

