2013-06-11 27 views
6

Ben gibi doğal nesne türü için bir WinTable nesneyi alıp döküm çalışıyorum:Yerel Nesne Sınıfı WinControl'den mi?

CustomControl control = (CustomControl) this.UIMap.UIMainWindow.UICustomControl.NativeElement; 

Sonra Oluşan CustomControl ben control.DoAThing() gibi benim program için kaynak kodunda olduğu gibi tedavi etmek istiyorum, zaten CustomControl sınıfını içeren .dll başvurulan ama sorun .NativeElement; olması gerektiği şeklinde bir tip Object[] yerine definition of the function gibi bir Object dönen olmasıdır.

.NativeElement gitmek yoksa amacına yanlış anlama am yolu var mı? GÜNCELLEME

: Ben sonuçlanan Object[] nesnelerin türlerini kontrol ve ilki tip System.__ComObject sahiptir ve ... 2 System.Int32 ama bunlardan birini temsil emin değilim

+0

Yönetilen nesneyi almıyorsunuz gibi görünüyor, ancak yalnızca com denetiminin bulunduğu DLL ve nesnenin giriş noktası için bir tamsayı (işaretçi olarak tasarlanmıştır). Benim tahminim .NativeElement' sen bunu beklediğiniz yapmak gerekiyordu değil 'olan (Bu arada da bu neden yapıyor anki çağırıcı için tam güven gerektirir). 'CustomControl' nedir? Bu sınıfı kendin mi yazdın? –

+0

@TimothyGroote Hayır, üçüncü taraf bir denetimdir. Ancak kaynak koduna erişimim var. –

+0

Ben Dizi Nesnesi [] Bir Nesne olduğunu, aka bu Array Nesne devralır ve dizideki ilk öğe bile tanımlandığını garantiler hangisi gerçekten dönüş türü – MPavlak

cevap

0

Eğer CustomControl ve UICustomControl sınıflar için kodunuzu yayınlanmıştır yapmanız yararlı olacaktır. Sorununuza dair belirsiz bir anlayışa dayanarak, aşağıdakiler işe yarayabilir: bunu deneyin ve sonuçları yayınlayın.

object[] native = 
    this.UIMap.UIMainWindow.UICustomControl.NativeElement as object[]; 
if ((native[0] != null) && (native[0] is IAccessible)) { 
    IAccessible a = native[0] as IAccessible; 
    if (a is CustomControl) 
     CustomControl control = (CustomControl)a; 
} 
+0

ihlal etmediğini çünkü eminim, dursun Aradığınız nesneyi 'Çalışmadı; zaten daha önce bu çalıştılar –

+0

, sonuç bir amacı referans aka ayarlanmamışsa' IAccessible a = doğal [0] IAccessible olarak belirten bir hata mesajı oldu. Bu durumda özel kontrol kaynak kodunun yayınlanması gerektiğini düşünmüyorum, teorik olarak benim sorunum, varsayılan Windows Forms kontrolleri dahil olmak üzere herhangi bir kontrole uygulanabilir. –

İlgili konular