INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

.NET Steuerelemente dynamisch erzeugen



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

01.02.2011, 16:55
Beitrag #1

seb- Offline
LVF-Neueinsteiger


Beiträge: 3
Registriert seit: Feb 2011

2010
-
de


Deutschland
.NET Steuerelemente dynamisch erzeugen
Hallo,
Ich habe mir in c# ein eigenes Steuerelement erstellt.
Das Einbinden in einen .NET Container funktioniert einwandfrei.

Meine Frage:
Ich möchte dynamisch Instanzen dieses Steuerelementes erstellen, also z.b. aus einer FOR-Schleife heraus. Ist dies möglich?

Wenn ich mein Steuerelement über den Konstruktorknoten instanziere habe ich zwar kein Problem mit der dynamischen Erzeugung,
jedoch weiß ich leider nicht, wie ich meine aus dem Konstruktorknoten erhaltene Referenz mit einem .NET Container verknüpfe.
Ist dies möglich?

Technische Daten:
Ich arbeite mit LabView2010 und habe meine Steuerelementebibliothek mittels Visual Studio 2008 unter Verwendung von .NET 3.5 erstellt.


Vielen Dank im Voraus
Sebastian
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
02.02.2011, 07:37
Beitrag #2

Y-P Offline
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
LVF-Team

Beiträge: 12.612
Registriert seit: Feb 2006

Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN

71083
Deutschland
.NET Steuerelemente dynamisch erzeugen
Bahn. Das ist bestimmt was für rolfk. Big Grin
Kannst Du mal Dein Bsp. hochladen zum rumprobieren?

Gruß Markus

--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
02.02.2011, 09:49
Beitrag #3

seb- Offline
LVF-Neueinsteiger


Beiträge: 3
Registriert seit: Feb 2011

2010
-
de


Deutschland
.NET Steuerelemente dynamisch erzeugen
Hallo Markus,
Beispiel kommt sofort.
Habe ein .NET Steuerelement (hier eine simple LED) auf 3 Arten instanziert:

1. Eine einzelne LED in einem .NET Container. Funktioniert einwandfrei
2. Ein .NET Container in einer FOR-Schleife in der Hoffnung, dass am Ende 4 Instanzen des Steuerelementes entstehen. Funktioniert so nicht.
3. Erzeugung der Instanzen über den Konstruktorknoten. Es werden zwar mehrere Instanzen erzeugt, jedoch kann ich diese nicht zur Anzeige bringen, d.h. mit einem .NET Container verknüpfen o.ä.

Das Beispiel wurde mit LV2010 erstellt. Das Steuerelement (led.dll) benötigt .NET Framework 3.5.


Vielen Dank schon einmal.

Gruß
Sebastian


Angehängte Datei(en)
Sonstige .vi  dotNet_LED.vi (Größe: 17,33 KB / Downloads: 258)

Sonstige .dll  Led.dll (Größe: 6,5 KB / Downloads: 217)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
02.02.2011, 10:17
Beitrag #4

oenk Offline
LVF-Stammgast
***


Beiträge: 361
Registriert seit: May 2005

>= 7.1
2004
EN

3018
Schweiz
.NET Steuerelemente dynamisch erzeugen
Hier meine zwei/drei Gedanken dazu:

' schrieb:2. Ein .NET Container in einer FOR-Schleife in der Hoffnung, dass am Ende 4 Instanzen des Steuerelementes entstehen. Funktioniert so nicht.
Kann so nicht funktionieren, da du immer wieder auf das gleiche Objekt zugreifst. Zum Beweis: mach mal eine "Probe" auf den Draht zwischen den ersten beiden for-Schleifen. Dort wirst du sehen, dass es 4mal die gleiche Referenz ist. Wenn du es so machen möchtest, dann verweise ich auf diesen link. Dort geht es zwar um Occurences, ist aber im Endefekt das Selbe in grün.

' schrieb:3. Erzeugung der Instanzen über den Konstruktorknoten. Es werden zwar mehrere Instanzen erzeugt, jedoch kann ich diese nicht zur Anzeige bringen, d.h. mit einem .NET Container verknüpfen o.ä.
IMHO würde das in der .NET Umgebung so ja auch nicht funktionieren, oder? Du musst ein Control ja auch immer irgend einem expliziten Container zuweisen. Was ist, wenn du in LV einen .NET Contrainer mit einem Panel erstellst und diesem .NET Panel immer die entsprechende Instanz deines gerade anzuzeigendes Controls übergibst?

In theory, there is no difference between theory and practice; In practice, there is.

Chuck Reid
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
07.02.2011, 10:22
Beitrag #5

seb- Offline
LVF-Neueinsteiger


Beiträge: 3
Registriert seit: Feb 2011

2010
-
de


Deutschland
RE: .NET Steuerelemente dynamisch erzeugen
(02.02.2011 10:17 )<<oenk>> schrieb:  IMHO würde das in der .NET Umgebung so ja auch nicht funktionieren, oder?

Das war der richtige Denkanstoß, danke.

Konnte das Problem jetzt für mich sinnvoll lösen.

Habe mein Steuerelement zweigeteilt:
- Eine Klassenbibliothek, die ich über den Konstruktorknoten Instanzieren kann, wie ich will
- Eine Steuerelementebibliothek, der ich mit einer Funktion setReference eine Referenz auf die anzuzeigende Klasse übergeben kann

So kann ich beispielsweise 10 Anzeigeobjekte auf dem Panel platzieren und über setReference entscheiden, welche Instanzen gerade dargestellt werden sollen.

Ist für mich eine schöne Lösung.

Danke an alle
Sebastian
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Gehe zu: