Çözüldü C# formu ALT + Tab'dan gizleme

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.
Çözüm
Yine gözüküyor. Acaba bunun çalışması için form load kısmına kod eklemek gerekiyor mu?
Form nesnesinin base paremetrelerini ezdiğimiz için load methodunun içine koyamayız.
Ek olarak formun oluşturulma esnasında ki methodu da ezerek deneyebilir misiniz ? Normalde uzun süredir size gönderdiğim methodu kullanıyorum.
C#:
//constructor içerisine eklenmeli
this.ShowIcon = false;
this.ShowInTaskbar = false;
// constructor dışına eklenmeli
protected override void OnCreateControl()
        {
            base.OnCreateControl();
 
        }

Ayrıca SetWindowLong methodu üzerinden çeşitli form manipülasyonlarını yapıyorum.
https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-setwindowlonga
User32.dll içerisinden import ediliyor.
Şöyle bir sorun oluşuyor. Ben ana formda değil ikinci formda bu işlemi yapıyorum. Ana formdan formu oluşturup gösteriyorum. İkinci formda gizleyince işe yaramıyor.
İkinci formu gösteren bir referans değişkenine ihtiyacınız var.
Örnek. FormA ve FormB olsun. FormA ana formumuz.
FormA, FormB'yi create ediyor. Eğer FormB'den FormA'yi gizlemek istiyorsanız FormB'nin Constructor Methodundan FormA'nin referansını gönderip bir yerde tutmanız gerekiyor.
Daha sonra tuttuğunuz referans üzerinden myForm.Hide()
 
İkinci formu gösteren bir referans değişkenine ihtiyacınız var.
Örnek. FormA ve FormB olsun. FormA ana formumuz.
FormA, FormB'yi create ediyor. Eğer FormB'den FormA'yi gizlemek istiyorsanız FormB'nin Constructor Methodundan FormA'nin referansını gönderip bir yerde tutmanız gerekiyor.
Daha sonra tuttuğunuz referans üzerinden myForm.Hide()
Tam tersi olacak. İkinci formu gizlemek istiyorum. Yani ikinci formu ana form üzerinden mi gizlemek mümkün?
 
Evet mümkün. Hatta çok daha basit.
Öyle demek istemedim beyefendi. "Sadece ana formdan mı yapılıyor?" şeklinde demek istemiştim.

Kısacası senin deyişine göre ikinci formu oluşturunca ikinci forma "Hide();" yazdıktan sonra işlemez, ana formdan nesne ile birlikte yazmak gerekir.
 
Öyle demek istemedim beyefendi. "Sadece ana formdan mı yapılıyor?" şeklinde demek istemiştim.

Kısacası senin deyişine göre ikinci formu oluşturunca ikinci forma "Hide();" yazdıktan sonra işlemez, ana formdan nesne ile birlikte yazmak gerekir.
Hayır. İkincil Form'dan ana formu kapatmak için gerekli o.

İkinci Form, asıl formun alt nesnesi olduğu için asıl Form'dan ikinci formu kapatmak için referans göndermeye gerek yok. Objenin referansına Hide demek yeterli. (2. form hem kendi içerisinden gizlenebilir hem de asıl form üzerinden.)

Bulmaca gibi şifreli şekilde yazmak yerine kaynak kodu atmanız işleri çok daha hızlandıracaktır.
 

Technopat Haberler

Geri
Yukarı