SORU
12 AĞUSTOS 2008, Salı


En iyi Windows Form içinde başka bir form üzerindeki bir denetimin erişim yolu olabilir mi?

Öncelikle, bu bir masaüstü uygulaması Windows Formları ASP.NET Bir soru değil kullanma hakkında bir soru.

Diğer form denetimleri ile etkileşim gerekiyor. Kullanarak erişimi kontrol eder, örneğin, aşağıdaki... anlatmaya çalışıyorum

otherForm.Controls["nameOfControl"].Visible = false;

Beklerim bu işler öyle yürümüyor. Bir istisna Main atılan biter. Eğer kontroller private yerine public yaparsam ancak o zaman onları doğrudan, yani erişebilirsiniz...

otherForm.nameOfControl.Visible = false;

Ama en iyi yolu yapmaktır? Kontroller public diğer formu olarak kabul yapma "en iyi uygulamalar"? Bir var "" başka bir form üzerindeki denetimleri erişmek için bir yol daha mı iyi?

Ayrıntılı Açıklama:

Bu aslında takip ediyorum sorulan bir soruya, bir türBest method for creating a “tree-view preferences dialog” type of interface in C#?. Aldığım cevap harikaydı ve UI düz ve basit tutmak açısından sahip olduğum pek çok örgütsel sorunlar, çalışma zamanı ve tasarım zamanı ile iş çözüldü. Ancak, bu kolay arayüzü diğer yönlerini kontrol sorunu detaycı getirmek oldu.

Temelde, kök form üzerine bir panel oturan diğer formları bir sürü oluşturur bir kök form var. Bu yüzden, örneğin, bu form alt bir radyo düğmesi ana, kök form durumu striptiz simge durumunu değiştirmek gerekebilir. Bu durumda, alt form (root) ana form durumu şeridinde kontrol etmek için konuşmak istiyorum. (Bu anlamda, "ilk" gibi.) kimin olduğu değil yapar umarım

CEVAP
12 AĞUSTOS 2008, Salı


Kamu denetimi yapmak yerine, kendi görüş denetleyen bir özelliği oluşturabilirsiniz:

public bool ControlIsVisible
{
     get { return control.Visible; }
     set { control.Visible = value; }
}

Bu özellikleri denetimin tüm set ifşa etmeyeceğini kontrol için uygun bir erişimci oluşturur.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • jkimisyellow...ish

    jkimisyellow

    8 Temmuz 2009
  • 趣味そうこ♪

    趣味そう

    3 Mart 2010
  • pain975

    pain975

    27 NİSAN 2008