C# OOP Classlarla İlgili Çok Basit Bir Soru
-
Sorun çok basit.
Form1 adlı classtan yeni oluşturduğum Rectangle adlı class'a erişip içerisindeki herhangi bir fonksiyonu çalıştırıyorum. AMA
Rectangle adlı classtan Form1 tipinde bir obje oluşturup label1.text / textboxt.text / this.text gibi komutları kullanamıyorum. Farkedebildiğim komutlar bunlar. Elbette daha fazlası vardır.Bu sorunun sebebi nedir ? Nasıl çözerim ? yardım lütfen :D
label1'in modifiers kısmından public olarak değişimini sağladım.
-
Hocam 2.kez Form1 isimli sınıftan bir nesne yarattığında artık farklı bir Form1 nesnesi yaratmış oluyorsun. Program başladığında ekranında gözüken Label , textbox vs bunlar program ilk kez çalıştığında yaratılan Form1 in veri elemanları.
Sen sonra başka bir nesne yaratıyosun bu sefer o nesnenin elemanlarını değiştirmiş oluyorsun.
Yaptığın değişiklikleri görmek için frm.Show() yaz 2. bi form çıkar ekrana muhtemelen o zaman işte o textbox yada label da yapmış olduğun değişiklikleri görebilirsin.
-
Peki hocam ne yapmam lazım ?
frm.Show(); dediğim zaman bahsettiğin yeni form açıldı ve yaptığım değişiklikleri gördüm. Ama ben hali hazırda kullandığım penceredeki değişiklikleri görmek istiyorum (:
Yani Form1'in objesinin adı ne ? Nasıl erişicem ona ben bilmiyorum bunu.
C++'ta ClassAdi::FonksiyonAdi(); şeklinde erişiyordukta c# kastı biraz :D
GodKlaus tarafından 28/Oca/18 12:28 tarihinde düzenlenmiştir -
Hocam çorba olmuş o kod :) . Tam olarak ne yapmak istiyorsun. Yani aynı formun içinde label1 in text ini değiştirmek için neden farklı class a gidiyorsun? Mantığı kurabilirsem daha net cevap verebilirim :)
-
Yazilimci bunu yazdı
Hocam çorba olmuş o kod :) . Tam olarak ne yapmak istiyorsun. Yani aynı formun içinde label1 in text ini değiştirmek için neden farklı class a gidiyorsun? Mantığı kurabilirsem daha net cevap verebilirim :)
+1
-
Hocam sen yeni form oluşturuyorsun, oluşturduğun formun elemanını değiştiriyorsun. O sebeple mevcut form değişmiyor.
Mevcut formu değiştirmek için yeni form oluşturmana gerek yok ki. Açıkçası arkadaşların dediği gibi kod çorba olmuş. :)
-
Edit :
Form1'deki herhangi bir listbox label textbox button cart curt bir nesneye FARKLI BİR CLASS'TAN nasıl erişicem ?
Olay tamamen bu :D
GodKlaus tarafından 28/Oca/18 15:15 tarihinde düzenlenmiştir -
GodKlaus bunu yazdı
Edit :
Form1'deki herhangi bir listbox label textbox button cart curt bir nesneye FARKLI BİR CLASS'TAN nasıl erişicem ?
Olay tamamen bu :D
yazmissin zaten hocam.
-
Hocam sen turetmemiş yeni bir instance yaratmişsin. türeme icin soyle olmali :
class Rectangle : Form1
{public Rectangle()
{
this.label2.Text = DateTime.Now.ToString();
}
}
-
hala sorunu çözemedim. Bir allahın kulu yok mu şu kodu yazıpta halledeceksin diyen :D
edit : bu kodu yazdım düzeldi
Form1 mainForm = (Form1)Application.OpenForms[0];
GodKlaus tarafından 28/Oca/18 18:38 tarihinde düzenlenmiştir -
Hocam aslında benim demek istediğim buttonun click eventinda label1 e erişebilirsin zaten. label1.text yapınca istediğini yaparsın zaten. Neden tekrar class a gidiyorsun? Anlamadığım nokta bu. OOP ta böyle bir şey değil :(. Rectangle classın form1 bağımlı. Form1 in rectangle bağımlı. Bağını koparmaya çalışıyor kodlar kendi kendine :)
Yazilimci tarafından 28/Oca/18 21:32 tarihinde düzenlenmiştir