2011-09-13 10 views
5

Bir pencere oluştururken VC++ 'da olduğu gibi, bir pencere sınıfı oluşturmalı ve kayıt olmak için RegisterClass veya RegisterClassEx kullanmalıyız. Ancak, .NET'te bu aşamaya sahip değiliz..NET formunu oluştururken Visual Studio tarafından atanan pencere sınıfı adı nedir?

Neden bir form oluştururken Visual Studio tarafından atanan varsayılan sınıf sınıfı adı nedir? Bu varsayılan pencereyi değiştirmek istediğiniz
WindowsForms10.Window.8.app.0.1ca0192_r13_ad1

: ben dışarı takip ettik gibi

, Visual Studio tarafından atanan pencere sınıf adı bu biraz benzer sınıf adı, herhangi bir fikir?

+1

Neden değiştirmek istersiniz? –

+1

Belirli bir form benim uygulama tarafından oluşturulan formu olup olmadığını kontrol etmek gerekiyor – jondinham

+1

@ André'ın sorusu, Paul cevap vermiyor. Var olup olmadığını kontrol etmek için değiştirmek zorunda değilsiniz. Sadece hangi sınıf adına bakmanız gerektiğini bulup, sonra arayın. Öte yandan, André'in sorusu, * sorunuzu cevaplamak için önemli değildir. Yine de, gerçekten ihtiyacınız olan her şeyi yapmak için muhtemelen daha iyi yollar olduğunu unutmayın. Görünüşe göre, belirli bir pencerenin uygulamanız tarafından oluşturulup oluşturulmadığını öğrenmek istiyorsunuz. Pencere sınıflarıyla ilgili değil, * diye sormalısınız. –

cevap

4

Pencere sınıfı adları otomatik olarak oluşturulur. CreateParams, ClassName özelliğini ayarlamanıza izin verse bile bunları değiştiremezsiniz. Harici bir program otomatik olarak oluşturulan adı doğru tahmin edemez, bunun bir kısmı AppDomain.CurrentDomain.GetHashCode() öğesinden oluşturulur.

Pencereyi tanımlamanın başka bir yoluna ihtiyacınız olacak. Çok fazla değil, ancak bir pencereye isteğe bağlı bir dizeyi ilişkilendirmek için SetProp() öğesini iğneleyebilirsiniz. Ve GetProp() ile mevcut olup olmadığını test edin. SDK makalesi is here.

+0

tks Hans, GetProp & SetProp bu tanıtım işini yapabilir! :) – jondinham

İlgili konular