Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
UserControl kann im Designer nicht hinzugefügt werden
hurricane
myCSharp.de - Member

Avatar #avatar-1740.jpg


Dabei seit:
Beiträge: 380
Herkunft: bei Berlin

Themenstarter:

UserControl kann im Designer nicht hinzugefügt werden

beantworten | zitieren | melden

Ich habe mir ein Usercontrol erstellt, in dem eine TreeView enthalten ist, die spezielle Funktionen hat.
Dieses Usercontrol habe ich in eine DLL gepackt und diese DLL habe ich meiner Anwendung hinzugefügt. Ich kann auch das Usercontrol in die ToolBar einfügen. Wenn ich jedoch das Control im Designer auf meine Form ziehe, dann passiert gar nichts. Es wird nicht angezeigt und es wird auch nichts im Code hinzugefügt.
Das selbe passiert mir auch bei 2 anderen Controls.
Ein Control wurde einmal im Designer angezeigt, nach einer kleinen Änderung jedoch, war das Control verschwunden.... Ich muss die Controly nun immer im Quellcode in die Form einbinden, was nicht gerade so toll ist.

Hat einer eine Idee, wie der Fehler zu Stande kommt und wie man ihn behen kann?


ciao Anke
private Nachricht | Beiträge des Benutzers
Programmierhans
myCSharp.de - Experte

Avatar #avatar-1651.gif


Dabei seit:
Beiträge: 4318
Herkunft: Zentralschweiz

beantworten | zitieren | melden

Mach folgendes:

Oeffne nur das DLL-Projekt

Dann unter den Projekteigenschaften unter Debuggen einstellen:

- DebugModus Programm
- Anwendung starten: Vollen Pfad auf das Devenev.exe eintragen

Nun kannst Du dein DLL Projekt laufen lassen.... es wird sich eine zweite Entwicklungsumgebung öffnen. In dieser lädst Du das UI-Projekt, machst darin einen Build. Nun kannst Du ein Form des UI-Projektes öffnen und die Controls draufwerfen (sämtliche Breakpoints in Deinem DLL sollten nun funzen).... nun kannst Du dem Fehler auf den Grund gehen..... vermutlich schmeisst ein Control einen ganz blöden Fehler.

Ev. gibts noch andere Möglichkeiten Controls im DesignModus zu debuggen... aber mir fällt keine andere ein... und bin bisher so gut gefahren.

Gruss
Programmierhans
Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...
private Nachricht | Beiträge des Benutzers
norman_timo
myCSharp.de - Member

Avatar #avatar-1775.jpeg


Dabei seit:
Beiträge: 4591
Herkunft: Wald-Michelbach (Odw)

beantworten | zitieren | melden

Hallo!

Ich habe das gleiche Problem, und ich glaub er will nicht DEBUGGEN, sondern im VS nur die Controls, von der DLL auf die "OwnControls" Toolsleiste bringen, um dann diese im Designer einzubinden (per Drag&Drop).

Von laufen lassen hat er meiner Meinung nach nix gesagt!

Ich sag hier auch nur, dass ich das auch nicht hinbekommen hab, und es so gelöst hab, wie hurricane beschrieben, und rein im Code implementiert hab :-(

Ciao
Norman-Timo
A: “Wie ist denn das Wetter bei euch?”
B: “Caps Lock.”
A: “Hä?”
B: “Na ja, Shift ohne Ende!”
private Nachricht | Beiträge des Benutzers
hurricane
myCSharp.de - Member

Avatar #avatar-1740.jpg


Dabei seit:
Beiträge: 380
Herkunft: bei Berlin

Themenstarter:

beantworten | zitieren | melden

Ich kann das ja mal ausprobieren.

Das komisch ist ja nur, das es einmal bei dem einen Control ging. Und dann halt plötzlich nicht mehr. Ich habe jetzt ein Panel im Designer liegen. Dort füge ich mein UserControl hinzu und setzt Dock auf "Fill". Das geht natürlich auch, ist aber nicht so schön

Hier mal ein Beispiel:


// Erstellt eine GridControl.
			this.gridControlReport = new GridControl();

			// Die Werte (Size, Width, ...) des Labels werden für das GridControl kopiert.
			this.gridControlReport.Font		= this.pnlPlaceHolderControls.Font;
			this.gridControlReport.Location	= new Point(this.pnlPlaceHolderControls.Location.X, this.pnlPlaceHolderControls.Location.Y);
			this.gridControlReport.Size		= new Size(this.pnlPlaceHolderControls.Size.Width, this.pnlPlaceHolderControls.Size.Height);
			this.gridControlReport.Anchor	= this.pnlPlaceHolderControls.Anchor;
			this.gridControlReport.Dock		= this.pnlPlaceHolderControls.Dock;
			this.gridControlReport.Visible	= false;

			this.gridControlReport.Dock		= DockStyle.Fill;

			// Fügt das GridControl der Form hinzu.
			this.pnlPlaceHolderControls.Controls.Add(this.gridControlReport);

Es sollte hier ja der selbe mechanismus geschehen, wie wenn das Control im Designer hintugefügt wird. Es kommt hier aber keine Exception, also sollte das Control ja korrekt sein, oder?
private Nachricht | Beiträge des Benutzers
hurricane
myCSharp.de - Member

Avatar #avatar-1740.jpg


Dabei seit:
Beiträge: 380
Herkunft: bei Berlin

Themenstarter:

beantworten | zitieren | melden

@Norman-Timo

Ich bin doch aber kein "Er" X(
private Nachricht | Beiträge des Benutzers
Programmierhans
myCSharp.de - Experte

Avatar #avatar-1651.gif


Dabei seit:
Beiträge: 4318
Herkunft: Zentralschweiz

beantworten | zitieren | melden

Auf der Toolbox hat er das Zeugs ja schon....

Wenn Du nicht Debuggen willst... dann lass halt Deine Fehler drin.

Du brauchst auch meine Ratschläge nicht zu berücksichtigen.... ich geb zwar Tipps die funktionieren aber die Anwendung ist freiwillig..... Es ist Dir somit freigestellt auch in Zukunft auf den Designer zu verzichten wenn Dir dies lieber ist.

PS: Manchmal reichst auch wenn man den Verweis auf das DLL rausschmeisst und dann nochmal ein Control auf das Form zieht
Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...
private Nachricht | Beiträge des Benutzers
Programmierhans
myCSharp.de - Experte

Avatar #avatar-1651.gif


Dabei seit:
Beiträge: 4318
Herkunft: Zentralschweiz

beantworten | zitieren | melden

Zitat
Original von hurricane

Ich bin doch aber kein "Er" X(

Cool eine Frau am Steuer eines 3.5 cm Nitro-Car's :-)
Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...
private Nachricht | Beiträge des Benutzers
norman_timo
myCSharp.de - Member

Avatar #avatar-1775.jpeg


Dabei seit:
Beiträge: 4591
Herkunft: Wald-Michelbach (Odw)

beantworten | zitieren | melden

Verzeihung Programmierhans, ich bin mir nicht ganz im Klaren darüber, was der Designer mit debuggen zu tun hat, vielleicht hab ich da eine Wissenslücke!

Wird das Control denn ausgeführt, wenn ich das von der ToolBox auf die Designer-Fläche ziehe?

Falls das so ist, dann sorry, ich war der Meinung, dass Du die Frage nicht richtig verstanden hattest, und dachte ich könnte das dann präzesieren.

Wie gesagt, vielleicht hab ich deine Lösung auch nur fehlinterpretiert.

Und ich bin so jemand, der versucht nicht nur Lösungen anzuwenden, sondern sie auch zu verstehen, könntest Du daher das Ganze erklären, was da gemacht wird, bei Deiner Vorgehensweise?

Ciao
Norman-Timo
A: “Wie ist denn das Wetter bei euch?”
B: “Caps Lock.”
A: “Hä?”
B: “Na ja, Shift ohne Ende!”
private Nachricht | Beiträge des Benutzers
norman_timo
myCSharp.de - Member

Avatar #avatar-1775.jpeg


Dabei seit:
Beiträge: 4591
Herkunft: Wald-Michelbach (Odw)

beantworten | zitieren | melden

UUPS!
Zitat
Ich bin doch aber kein "Er"

Es tut mir schrecklich leid, ich bin da ganz ehrlich, darauf hab ich mal überhaupt nicht geschaut! *peinlich*

Leider ist es so, dass hier zu 95% männliche Forumsmitglieder sich austoben, deshalb nochmal ein GROSSES SORRY!

Ciao
Norman-Timo
A: “Wie ist denn das Wetter bei euch?”
B: “Caps Lock.”
A: “Hä?”
B: “Na ja, Shift ohne Ende!”
private Nachricht | Beiträge des Benutzers
hurricane
myCSharp.de - Member

Avatar #avatar-1740.jpg


Dabei seit:
Beiträge: 380
Herkunft: bei Berlin

Themenstarter:

beantworten | zitieren | melden

Der Monstertruck hat aber 11 ccm ich glaube es sind sogar 11.5, weiß es gar nicht mehr so genau. Ist von Thunder Tiger

Ich habe ja nicht gesagt das ich deinen Vorschlag nicht ausprobieren will, sondern nur, das es mich wundert das es klappt, wenn ich im Konstruktor der Form das Control einbinde, aber im Designer klappt es nicht. Das finde ich halt komisch, das kann ja kein Fehler am Control sein, oder?
Es kommt ja auch kein Fehler wenn ich das Control im Designer einfüge, es passiert halt einfach nur nichts

Übrigens habe ich doch so ein schönes rosanes Zeichen neben meinem Benutzernamen, ist das nicht aussagekräftig genug ?( Außerdem habe ich noch nie eine "Er" gesehen der Anke heißt *lach*
private Nachricht | Beiträge des Benutzers
norman_timo
myCSharp.de - Member

Avatar #avatar-1775.jpeg


Dabei seit:
Beiträge: 4591
Herkunft: Wald-Michelbach (Odw)

beantworten | zitieren | melden

Du hast gewonnen!

Ich bin schlamperig und lese Beiträge nicht mit Argusaugen, hier: leider!


Aber zurück zum Thema:
Zitat
Ich habe ja nicht gesagt das ich deinen Vorschlag nicht ausprobieren will, sondern nur, das es mich wundert das es klappt, wenn ich im Konstruktor der Form das Control einbinde, aber im Designer klappt es nicht. Das finde ich halt komisch, das kann ja kein Fehler am Control sein, oder?

Ja, genau das ist das was ich Programmierhans sagen wollte, Deutsches Spraches nunmal schweres Spraches :-)

Ich drück mich immer zu kompliziert aus.

Aber vielleicht erklärt Programmierhans das noch etwas genauer?

Ciao
Norman-Timo
A: “Wie ist denn das Wetter bei euch?”
B: “Caps Lock.”
A: “Hä?”
B: “Na ja, Shift ohne Ende!”
private Nachricht | Beiträge des Benutzers
Programmierhans
myCSharp.de - Experte

Avatar #avatar-1651.gif


Dabei seit:
Beiträge: 4318
Herkunft: Zentralschweiz

beantworten | zitieren | melden

Logisch werden die Controls ausgeführt wenn man diese auf den Designer schmeisst...... Und wenn das löschen der Referenz auf das DLL das Problem nicht löst (die Referenz wird automatisch wieder erstellt wenn das Control auf dem Form landet) hast Du schlechte Karten.... dann bleibt im Regelfall nur noch die beschriebene Variante übrig.


@hurricane

Ja so Modelle sind schon toll.... da stehen bei mir einige rum von 1:24 bis 1:6 (alle natürlich incl. Steuerung)

Ich hoffe Du hurricane hast Dich nicht angegriffen gefühlt.... war eher eine Reaktion auf norman_timo ' post....

Da mein Hauptgebiet die Entwicklung von Komponenten / Controls / Schnittstellen ist, weiss ich schon, wie man solche Probleme angehen muss.....

Gruss
Programmierhans
Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...
private Nachricht | Beiträge des Benutzers
hurricane
myCSharp.de - Member

Avatar #avatar-1740.jpg


Dabei seit:
Beiträge: 380
Herkunft: bei Berlin

Themenstarter:

beantworten | zitieren | melden

Ich habe jetzt denVerweis zu meinem GridControl unter Verweise entfernt.

Dann habe ich in der ToolBox unter "Eigene Benutzersteuerelemente" mein GridControl hinzugefügt in dem ich die entsprechende DLL ausgewählt habe. Das klappt auch einwandfrei. Wenn ich jetzt das GridControl auswähle, dann passiert einfach mal gar nichts, keine Meldung und nichts X(

Ich werde jetzt das ausprobieren, was du vorhin geschrieben hast, bis jetzt hatte ich leider keine Zeit dazu
private Nachricht | Beiträge des Benutzers
hurricane
myCSharp.de - Member

Avatar #avatar-1740.jpg


Dabei seit:
Beiträge: 380
Herkunft: bei Berlin

Themenstarter:

beantworten | zitieren | melden

Irgendwie habe ich es jetzt hingekommen.

Ich verwende in meinem GridControl eine DLL, die ich auch in meiner Anwendung verwende. Diese habe ich jetzt als Verweis rausgenommen, dann das GridControl im Designer hinzugefügt und siehe da, es hat funktioniert!!!
Ich werde die Einstellung von DebugModus "Programm" mal wieder raus nehmen und gucken ob es immer noch geht...
private Nachricht | Beiträge des Benutzers
Programmierhans
myCSharp.de - Experte

Avatar #avatar-1651.gif


Dabei seit:
Beiträge: 4318
Herkunft: Zentralschweiz

beantworten | zitieren | melden

Dann hat ja sogar die einfacher Variante funktioniert..... die ander Variante ist für die Härtefälle :-)
Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...
private Nachricht | Beiträge des Benutzers
hurricane
myCSharp.de - Member

Avatar #avatar-1740.jpg


Dabei seit:
Beiträge: 380
Herkunft: bei Berlin

Themenstarter:

beantworten | zitieren | melden

Hmm ein anderes Control, das wieder in einer DLL liegt, kann ich aber immer noch nicht hinzufügen.
Zitat
---------------------------
Microsoft Development Environment
---------------------------
Eine Ausnahme ist aufgetreten, während eine Instanz von Mapping.MapControl erstellt wurde. Die Ausnahme war "Datei- oder Assemblyname 'XXX' oder eine Abhänigkeit davon wurde nicht gefunden.".
---------------------------
OK
---------------------------

Habe die Assembly jetzt mal XXX genannt. Ist die selbe Assembly die auch das GridControl verwendet und dich ich vorhin entfernt habt. Beim hinzufügen des GridControls auf die Form wurde die Assembly automatisch unter "Verweise" hinzugefügt. Wieso erkennt das MapControl dann aber die DLL nicht?
Kann so ein Fehler auch bei Versionskonflikten auftreten? Also wenn die beiden DLLs mit unterschiedlichen Versionen der XXX.dll erstellt wurden??? Das könnte nämlich sein, da dass MapControl ein Kollege programmiert hat...
private Nachricht | Beiträge des Benutzers
Programmierhans
myCSharp.de - Experte

Avatar #avatar-1651.gif


Dabei seit:
Beiträge: 4318
Herkunft: Zentralschweiz

beantworten | zitieren | melden

Zitat
Original von hurricane
Kann so ein Fehler auch bei Versionskonflikten auftreten? Also wenn die beiden DLLs mit unterschiedlichen Versionen der XXX.dll erstellt wurden??? Das könnte nämlich sein, da dass MapControl ein Kollege programmiert hat...

Ja definitiv !!

Edit: Ergänzung

Das war übrigens vermutlich von Anfang an der Grund für die Probleme !.... das Control landet auf dem Form, kann aber mit der xx Version nix anfangen und tschüss.... (er kann seine Version nicht zu den Verweisen hinzufügen, weil es das DLL dort schon gibt... allerdings in der falschen Version)
Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...
private Nachricht | Beiträge des Benutzers
hurricane
myCSharp.de - Member

Avatar #avatar-1740.jpg


Dabei seit:
Beiträge: 380
Herkunft: bei Berlin

Themenstarter:

beantworten | zitieren | melden

Hmm, jetzt habe ich mal zuerst das MapControl und dann das GridControl hinzugefügt, beide mit dem selber Stand der XXX.dll, nun kann ich das MapControl, aber nicht das GridControl hinzufügen

Ich werde mal beide Controls in eine DLL packen und gucken ob das geht. Dazu brauche ich aber erst die neueste Version des MapControls (habe nur ne alte) um das Control mit der neuesten DLL zu kompilieren *stöhn*.
Da der Kollege momentan nicht da ist, wird das wohl noch ein wenig dauern ...

ciao Anke
private Nachricht | Beiträge des Benutzers
Programmierhans
myCSharp.de - Experte

Avatar #avatar-1651.gif


Dabei seit:
Beiträge: 4318
Herkunft: Zentralschweiz

beantworten | zitieren | melden

vorallem hast du crosslinks ?

Also UI verwendet XX
UI verwendet ControlsY und diese verwenden wieder XX


Dann wirst Du immer ein Problem haben, solange Du die xx-Version nicht im Griff hast....
Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...
private Nachricht | Beiträge des Benutzers
hurricane
myCSharp.de - Member

Avatar #avatar-1740.jpg


Dabei seit:
Beiträge: 380
Herkunft: bei Berlin

Themenstarter:

beantworten | zitieren | melden

Hmm, ja das tue ich wohl. Weiß aber auch nicht wie ich es sonst lösen könnte.

Anfangs hatten wir (also mein Kollege und ich) die UserControls direkt in der XXX.dll aber da kamen gleich ganz komische Fehlermeldungen bei raus... deswegen haben wird die Controls in extra DLLs gepackt. Ich weiß nicht mehr wie die Meldungen lauten, das müßte ich erst noch einmal wiederholen...
Ich hatte nach den Meldungen gegoogelt aber nichts gefunden

Wie würdest du es denn machen? Beide UserControls verwenden jeweils die XXX.dll ...

Diese Meldung erscheint:
Zitat
---------------------------
Microsoft Development Environment
---------------------------
Das Objekt mit der ID 108 implementiert die IObjectReference-Schnittstelle, für die nicht alle Abhängigkeiten aufgelöst werden können. Mögliche Ursache sind zwei Instanzen von IObjectReference, die voneinander abhängig sind.
---------------------------
OK
---------------------------

ciao Anke
private Nachricht | Beiträge des Benutzers
Programmierhans
myCSharp.de - Experte

Avatar #avatar-1651.gif


Dabei seit:
Beiträge: 4318
Herkunft: Zentralschweiz

beantworten | zitieren | melden

alle die xxx verwenden müssen dieselbe version verwenden.... dann sollte es gehen
Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...
private Nachricht | Beiträge des Benutzers