C# Void Çağırma
-
Bi program deniyordum 2 tane form var frm1 frm2
Form1deki butona tıkladığınızda form1'in enabled özelliğini kapatıyorum ve form2 geliyor ekrana.Form2'den database giriş yapıyorum butona tıklayıp kapattığımızda form1'in enabled özelliğinin açılması ve form1'deki Güncelle() isimli void'i çağırmam lazım bu form1'deki datagridview'i güncelliyor.Ama form2'den ne enabled özelliğini açabiliyorum nede güncellemeyi ?
Form1- Buton ------------- Burda sıkıntı yok çalışıyor
this.Enabled = false;
form2 kasaekle = new form2();
kasaekle.Show();
Form2- Buton -------------- Bu kodlar çalışmıyor sadece form2 kapanıyor ?
form1 kasa = new form1();
kasa.Enabled = true;
kasa.Güncelle();
form2.ActiveForm.Close();
-
sen form1 kasa = new form1(); diyince yeni bir nesne yaratıyorsun ve o nesne üzerinde işlem yapıyorsun
nesne yönelimli programlama nedir kavrayamamışsın sanırsam. bak sana şöyle kısaca anlatayım
form1 denilen şey bir "şablon"dur sen onu tek başına static olmayan niteliklerini çalıştıramazsın,ulaşamazsın, sen
form1 f = new form1(); diyerek form1 şablonundan bir nesne yaratıyorsun f te bu nesnenin referansını başka bir değişle adresini tutuyor.
f imiz bir nesne olduğuna göre üstündeki metodları da çalıştırabilirz, ayrıca
form1 f2 = new form2(); dersek f den bağımsız bir form oluşturmuş oluruz, f ile en ufak bir alakası olmaz
ama static olarak tanımlanan herhangib birşey için bu geçerli deği, (public) static dediğin zaman uygulamada o nitelik heryerden her zaman erişilir ve tek 1 tane yaratılır (class initialize edilirken)
minnacık bir örnek yapalım
misal 2 tane formmuz var 2. formdan 1. forma ulaşmak istiyoruz
public partial class form1: form
{
public static form1 AcıkForm;
public form1 ()
{
initializecomponents();
AcıkForm = this;//this metodun üzerinde çalıştığı nesne referansını döndürür
}
public void transparan()
{
this.opacity = 60;
}
}
//bahstetiğin form2 kodu
form1.AcıkForm.Close();//işte şimdi bizim formu kapatmış olursun
form1.AcıkForm. transparan ();//şimdide hafif transparanlaşır
not: büyük küçük harf dikkat etmedim
-
Teşekkürler anladım
