C# Farklı Kontrol Üzerindeki Değişkene Ulaşma

UgurOnline

Asistan
Katılım
11 Aralık 2008
Mesajlar
159
Reaksiyon puanı
1
Puanları
0
şöyle bir kodumun olduğunu varsayalım

Kod:
        private void button1_Click(object sender, EventArgs e)
        {
            string isim = "Karakter";
            MessageBox.Show(isim);
        }

        private void button2_Click(object sender, EventArgs e)
        {
            MessageBox.Show();
        }

button1 kısmında isim değişkenini, buton2 üzerinden nasıl çekebilirim? button2'ye bastığımda isim değişkeni gözüksün mesela?
 

altunga

Öğrenci
Katılım
11 Eylül 2008
Mesajlar
3
Reaksiyon puanı
0
Puanları
1
string isim = string.Empty;
private void button1_Click(object sender, EventArgs e)
{
isim = "Karakter";
MessageBox.Show(isim);//Karakter gözükür
}

private void button2_Click(object sender, EventArgs e)
{
isim = "Karakter1";
MessageBox.Show(isim);//Karakter1 gözükür
}
 

UgurOnline

Asistan
Katılım
11 Aralık 2008
Mesajlar
159
Reaksiyon puanı
1
Puanları
0
işte ben button 2 tıklandığında Karakter gözüksün istiyorum. yani button2 içerisinde herhangi bir değişken olmadan buton 1 üzerindeki değişkene ulaşmak istiyorum
 

rainman4009

Asistan
Katılım
24 Şubat 2010
Mesajlar
250
Reaksiyon puanı
5
Puanları
18
private void button1_Click(object sender, EventArgs e,out string isim)
{
isim = "halil";
MessageBox.Show(isim.ToString());
}

private void button2_Click(object sender, EventArgs e)
{
string isim;
button1_Click(null,null,out isim);
MessageBox.Show(isim.ToString());
}
 

hakan_uu

Asistan
Katılım
30 Aralık 2009
Mesajlar
112
Reaksiyon puanı
1
Puanları
18
private void button1_Click(object sender, EventArgs e)
{
isim = "deneme";
MessageBox.Show(isim.ToString());
}

public string isim="";

private void button2_Click(object sender, EventArgs e)
{
MessageBox.Show(isim.ToString());
}

isim değişkenini tanımladığım yere ve başındaki erişim belirtecine dikkat et.
 

UgurOnline

Asistan
Katılım
11 Aralık 2008
Mesajlar
159
Reaksiyon puanı
1
Puanları
0
private void button1_Click(object sender, EventArgs e,out string isim)
{
isim = "halil";
MessageBox.Show(isim.ToString());
}

private void button2_Click(object sender, EventArgs e)
{
string isim;
button1_Click(null,null,out isim);
MessageBox.Show(isim.ToString());
}

button1_Click(null,null,out isim); kısmında hata verdi :s
 

UgurOnline

Asistan
Katılım
11 Aralık 2008
Mesajlar
159
Reaksiyon puanı
1
Puanları
0
hata şu:

No overload for method 'button1_Click' takes 3 arguments
 

akinov5

Asistan
Katılım
26 Nisan 2009
Mesajlar
448
Reaksiyon puanı
4
Puanları
18
Bunun yerine metotlar devreye giriyor.Çünkü değişkeni buton altında tanımlıyosun diğer scopelar içinde göremezsin. class seviyesinde tanımladığındada değer veremezsin. buton1 e tıklayıp 2 ye tıklaman gerekiyor. direk 2 ye tıkladığında değer vermedğin için default değer döndürür.


public void hede()
{
string isim = "hede";

MessageBox.Show(isim);

}
private void button1_Click(object sender, EventArgs e)
{
hede();
}

private void button2_Click(object sender, EventArgs e)
{
hede();
}
 

sonercelix

Asistan
Katılım
13 Şubat 2009
Mesajlar
149
Reaksiyon puanı
0
Puanları
16
Fonksiyon içerisinde tanımlanan değişkenler yerel değişkenlerdir. Fonksiyondan çıkıldıktan sonra bellekten silinirler. Diğer butonda da kullanmak istiyorsan global tanımla. Uzaya gidecek araç için program yazmıyosan fazla bir önemi olmaz galiba...
 
Üst