Fehlermeldung beim Einbinden eigener UserControls in Form (per Drag&Drop)

22/07/2008 - 17:12 von M.Erlinger | Report spam
Hallo

ich habe eine Frage, bzw. Problem beim Einbinden von eigenen UserControls
auf eine Form. In dem UserControl wird eine DBHelper-Class verwendet, in der
einige allgemeine Methoden sind.
Jetzt habe ich das Problem, wenn ich das UserControl auf eine Form ziehe,
dass ich zum Beispiel die Fehlermeldung von einer Methode "Error Execute
Scalar: Connection property has not been initialized" bekomme.
Klar - wenn ich in dieser Methode d. ExecuteScalar auskommentiere, und
einen fixen Return-Wert hineinschreibe, dann funktionert der Drag&Drop des
UserControls auf eine Form.

Gibt es hier einen Trick oder Möglichkeit, um mit eigenen UserControls zu
arbeiten, ohne dass ich immer den Code auskommentieren oder veràndern
muss???

Danke für Hinweise oder eine Unterstützung dazu.
Gruß
Michael
 

Lesen sie die antworten

#1 Frank Dzaebel
22/07/2008 - 18:12 | Warnen spam
Hallo Michael,

Jetzt habe ich das Problem, wenn ich das UserControl auf eine Form ziehe,
dass ich zum Beispiel die Fehlermeldung von einer Methode "Error Execute
Scalar: Connection property has not been initialized" bekomme.



Ich interpretiere Deine Frage mal so,
dass Du im Designer (zur Designzeit) die Abfrage
nicht machen möchtest.

Nun, dafür gàbe es z.B. die DesignMode-
Eigenschaft. (in Spezialfàllen etwas komplexer,
z.B. nicht im Konstruktor). Speziell dann eben
nicht, wenn dem Control noch keine
Site zugewiesen wurde.

Man kann sowas übrigens sehr gut herausfinden,
wenn man sein UserControl zur *Entwurfszeit* debuggt:
http://groups.google.com/group/micr...bbf42f3410


Ein paar der möglichen Workarounds für die Spezialfàlle:

[.Net Adventures : Detecting Design-time in C# (Native DesignMode
property not telling the full truth)]
http://devintelligence.com/blogs/ne...9/620.aspx

[C# - .DesignMode Workaround (Windows Forms)]
http://dotnet-snippets.de/dns/c-des...ID299.aspx

ggf. ungeprüft:

public static bool IstDesignMode(Control c)
{
if (c == null) return false;
else
{
while (c != null)
{
if (c.Site != null && c.Site.DesignMode)
return true;
else c = c.Parent;
}
return false;
}
}


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen