Konvertierung

Alf

Mitglied
Hey,

ich habe Problem bei der Konvertierung von Objekten. Die Methode AddRange muss eine Objekt vom Typ "System.Windows.Forms.Control[]" übergeben werden.
Um den Typ axDVTSID1 zu übergeben, muss ich ihn erstmal in "System.Windows.Forms.Control[]" konvertieren. Ich habe es wie im folgenden Code gemacht. Funktioniert aber nicht! Fehlermeldung in der zweiten Zeile: Cannot convert type 'AxAxSID.AxDVTSID' to 'System.Windows.Forms.Control[]'

Wie kann ich diese Konvertierung hinbekommen bzw. gibt es Methoden, die den Typ axDVTSID1 unterstützen?

Code:

System.Windows.Forms.Control[] testImage;
testImage = (System.Windows.Forms.Control[])axDVTSID1;
tabPage2.Controls.AddRange(testImage);

Danke für die Hilfe


Alf
 
axDVTSID1 muss von Control abgeleitet sein, sonst kannst du es vergessen.
AddRange erwartet ein Array von Controls.
Du versuchst hier eine Referenz in ein Referenzarray zu verwandeln. Das geht nicht. Du musst ein Array vom Typ axDVTSID1 erstellen und es dann mit deinem Objekt füllen.

Wenn es eine AddRange() Methode gibt, bin ich ziemlich sicher, dass es auch eine Add() Methode gibt. Die verlang kein Array sondern nur ein Objekt.
 
Hi,

du hast Recht mit Add() gibt der die Fehlermeldung nicht mehr in der zweiten Zeile des Codes, sondern erst in der dritten! Also packt er die Konvertierung, aber testImage ist noch nicht vom Typ System.Windows.Forms.Control?
Wie funktioniert das? Hat die Konvertierung nicht funktioniert? Kann man das axDVTSID1 nur unter VS-2003 und nicht unter VS-2002 konvertieren?

Code:

System.Windows.Forms.Control testImage;
testImage = (System.Windows.Forms.Control)axDVTSID1;
tabPage2.Controls.Add(testImage);


Gruß
Alf
 
Also das hängt nicht mit der Version von Visual Studio zusammen, sondern mit der Version des Frameworks. VS2003 erstellt "von Natur" aus Anwendungen für .NET 1.1 während in VS2002 für .NET 1.0 programmiert wird.
Natürlich kann man mit VS2003 auch .NET 1.0 Anwendungen kompilieren.

Was ist dieses axDVTSID1 eigentlich?
Von welcher Klasse ist es abgeleitet? Wenn es direkt von Object abgeleitet wird, kann es gar nicht funktionieren, das ja ein Control erwartet wird.

Hast du die Klasse selber erstellt?
 
Hey,

das axDVTSID1 ist eine Klasse von dem "DVT ActiveX Control". DVT ist ein Kamerahersteller und bietet das ActiveX an, damit du dir deine eigene GUI erstellen kannst und von der Kamera z.B. Bilder in deine GUI einbinden kannst.

Was mir jetzt noch bei meinem Programm aufgefallen ist, ist dass ich die erstellte .exe nicht aufrufen kann. Hast du einen Tipp, wodran das liegen kann?

Fallst du mit dem DVT-ActiveX mal arbeiten möchtest, kannst du es dir unter:
http://www.dvtsensors.com/support/DownloadsManager.php?KW=Archive

Gruß
Alf
 
Zurück