Ups, da war ich wohl sehr nah an der Wahrheit dran 🙂
Das ist die Antwort:
if (!DesignMode)
{
Connection.Open();
Command.ExecuteNonQuery();
Connection.Close();
}
Mein UserControl greift auf eine DLL zu. Im Debug-Modus ohne Probleme.
Nur bekomme ich eine Exeption im Designer weil er natürlich die DLL und die Datenbank nicht findet.
Deswegen würd ich gern sowas implementieren:
if(!designmodus)
{
Connection.Open();
Command.ExecuteNonQuery();
Connection.Close();
}
kann mir da jemand einen tipp geben?
Ingo
hölzern ist schon untertrieben, eher lehmig 🙂
aber was anderes fällt mir auf die schnelle nicht ein 🙂
lg
ingo
Ups das hab ich übersehen.. ich war der meinung es soll ein Rectangle gemoved werden...
danke hat sich erledigt.
Form Width auslesen
Text Width berechnen
Differenz/2 --> in Leerzeichen umrechnen und dem Text voranstellen.
lg
ingo
protected override void OnMouseMove(MouseEventArgs e) {
base.OnMouseMove(e);
if (_movingGraphicObject != null) {
// Wenn gerade ein Objekt verschoben werden soll, wird die Differenz zur letzten
// Mausposition ausgerechnet und das Objekt um diese verschoben.
_movingGraphicObject.Move(e.X - _lastMouseLocation.X, e.Y - _lastMouseLocation.Y);
_lastMouseLocation = e.Location;
// Hier könnte man noch optimieren, indem man immer nur den Bereich
// neuzeichnet, in dem das Objekt bewegt wurde.
this.Invalidate();
}
if (_canvas.Contains(e.Location)) {
_lblMouseLocation.Text = string.Format("x = {0}; y= {1}", e.X, e.Y);
}
bei einem Rectangle gibt es ja kein .Move
Wie realisiert ihr einen Visuellen Move, also das man während dem Moven das Rectangle an der MausPosition sieht?
Lg
Ingo
also mir kannst gern die beiden defekten platten schicken...
mit etwas glück bekomm ich aus 2 kaputten eine ganze raus 🙂
lg
ingo
Also ich würd als erstes die Stromzufuhr messen.
Ich hatte mal ein kaputtes Netzteil, das statt 19,9 Volt nur mehr 9 Volt geliefert hat..
so könnte ich mir das erklären das bei dir die Leds manchmal leuchten manchmal nicht.
Also .. zuerst die Spannung vom Netzteil messen, dann die Ampere, und dann die Usb Spannung messen.
Lg
Ingo
Danke Khalid.
Danke das du den ersten Teil meiner Frage gelesen und beantwortet hast.
Leider ergibt aber die Frage :
Was ist ein Destkop.
im Zusammenhang mit
Bzw. Was ist die Explorer.exe.
Könnte man sagen das der Desktop/Explorer eigentlich nur aus einem Listview im Fullscreenmodus plus Taskleiste besteht?
Weiss da jemand was genaueres?
leider eine ganz andere Frage.
Aber inzwischen wünscht ich mir ich hätt die Frage garnicht gestellt....
trotzdem lg
Ingo
Ich weiss ja nicht nach welcher Antwort du suchst....
Aber mein Anliegen:
Hallöchen.
Mir stellt sich gerade die Frage: Was ist ein Desktop.
Bzw. Was ist die Explorer.exe.
Könnte man sagen das der Desktop/Explorer eigentlich nur aus einem Listview im Fullscreenmodus plus Taskleiste besteht?
Weiss da jemand was genaueres?
Lg
Ingo
wurde schon richtig erkannt und auch beantwortet:
Der Desktop selber ist tatsächlich nichts anderes als eine ListView die sozusagen ein DockStyle.Fill hat. Das Control wird vom Explorer erzeugt, der ebenfalls auch die Taskleiste erzeugt.
sorry herbi aber in DER Anlaufstelle für Programmierer hab ich mir auf meine Frage nach der Explorer.exe nicht erwartet, das man mir versucht zu erklären das der Desktop das ist was ich am Bildschirm seh...
werd versuchen mich zukünftlich besser auszudrücken..
lg
ingo
Dankeschön, genau das was ich gesucht habe.
Kann es sein dass mit "Desktop" das gesamte Paket gemeint ist?
Ja es ist das ganze Paket gemeint, wie ich schon beim Themenstarter gesagt habe bezieht sich meine frage auf den Desktop/Explorer.exe
Hilft sicher eine (Google)-Suche nach "Windows + alternative Shell".
Und wenn man nach "Windows + alternative Shell" google, bekomme ich keinen Hinweis auf open source - Projekte von alternative Shells...
Bitte hiermit um hilfreiche und wohldurchdachte Antworten.
Bzgl. des Begriffs würde ich sagen, dass ein Desktop einfach der Bildschirm ist, der nach dem Start und einer erfolgreichen Anmeldung (an einem Betriebsystem) angezeigt wird.
wär ich jetzt wirklich nicht darauf gekommen...nicht mal nachdem ich die vorigen Antworten durchgelesen hätte....
ja im prinzip ist es so, aber zusätzlich hat
jeder Kunde, jeder Mitarbeiter einen eigenen 4stelligen code:
also sieht eine sms so aus
"0043/1069 Temperatursensor 4T3 Grenzüberschreitung"
0043 -> Mitarbeitercode
1069 -> Kundencode
Wir arbeiten schon mit so einem System.
Das ganze geht zentral über einen Server mit GSM-Modul.
Alle SMS laufen über den Server, werden archiviert und weiterverarbeitet.
@ Pel,wakestar&norman_timo
meine Frage war durchaus ernst gemeint, und da das hier kein Forum zum Plätzchen backen ist, hab ich mir eine eher Programmier-technische Antwort erwartet.
@Khalid
danke, das bestätigt meine Vermutung.
@all
Gibt es in diese Richtung Open Source Projekte?
Hallöchen.
Mir stellt sich gerade die Frage: Was ist ein Desktop.
Bzw. Was ist die Explorer.exe.
Könnte man sagen das der Desktop/Explorer eigentlich nur aus einem Listview im Fullscreenmodus plus Taskleiste besteht?
Weiss da jemand was genaueres?
Lg
Ingo
Gibts den Source auch dazu oder muss ich die exe auf eigene Gefahr hin ausführen??
lg
Ingo
wenn du sonst ncihts weiter zum thema beizutragen hast, dann bitte ich dich, mir meine zahlreichen buchstabendreher (ich hasse laptoptastatur) per pm zuzusenden. ich werde diese dann manuell löschen.
dito
- nur wenn es relevant ist. und das ist es in diesem fall nciht.
nicht
Ich lasse mir auf Form2 eine Wiedervorlagenliste in einem DatagridView anzeigen welches Werte < und > dem jetzigen Datum anzeigen lässt.
Auf einer anderen Form lass ich mir die dazugehörigen Stammdaten (per Doppelklick auf Form2) anzeigen.
Wird nun auf Form1 das wiedervorlagedatum geändert und mit einem INSERT SQL Befehl in die Datenbank geschrieben, hätte ich gerne dass sich mein datagridview auf From2 refreshed und mir gleich die geänderte Wiedervorlage übernimmt.
Gibt es einen Möglichkeit so etwas zu realisieren, OHNE den Tableadapter ganz neu zu laden ? Hintergrund: Es werden teilweise 10000 Wiedervorlagen auf einmal geladen. (performance).
hier fragst du nach komunikation zwischen forms....
lg ingo
btw.. herbivor verweist dabei immer gern auf den threat --> wie poste ich richtig
Es geht mir nicht um die Kommunikation ! das weiss ich bereits 😉
Sag mal, wenn du schon weisst wie du mit der Kommunikation zwischen den Forms umgehen sollst....
warum fragst du dann danach wie du mit der Kommunikation zwischen den Formen umgehen sollst?
is irgendwie nicht mehr logisch 🙂
lg ingo
Und das klappt nicht. Und wenn ich das hier richtig lese, gibt es auch keine Möglichkeit, wie es gehen könnte.
Also bei mir klappt das. Ich finde es gibt ganz viele Möglichkeiten wie das gehen könnte.
Reports01 Report = new Report();
Report.PrintOptions.PrinterName = "FreePDF"
Report.PrintToPrinter(1, false, 1, 1);
edit: zu spät ggg
sogesehen ist es ja doch das gleiche 🙂 dann bleib ich wohl mal bei meinen guten alten forms 🙂
lg ingo
Vom designen her ist das ein schöner weg,
was aber den nachteil hat das alle UC beim starten des programms geladen werden, und wenn man viele hat verzögert sich der programmstart oder?
lg
ingo
ups.. hab gestern abend das falsche projekt angehängt....
naja war schon spät gg
so jetzt ist der link korrigiert!
hab mal ein beispielprojekt angehängt..
vom prinzip her mach ich das immer so...
gibts da eine elegantere oder bessere lösung?
lg
ingo
in dem Beitrag geht es darum das man UserControls verwenden sollte.
Aber was hat das für einen Vorteil gegenüber Forms?
Ich arbeite eigentlich nur mit Forms.
Also das ich eine Main-Form habe, mit SplitContainern,und in diesen containern dann verschiedene Unter-Forms anzeigen lasse.
Sollte das mit UserControls besser gehen?!?
für mich klingt es nach folgender Problemlösung:
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Form2 form2 = new Form2();
form2.Closed += new EventHandler(OnFormClosed);
form2.Show();
}
private void OnFormClosed(object sender, EventArgs e)
{
MessageBox.Show("Form2 wurde geschlossen", "Geschlossen");
}
Genauso wie du das Datagridview per Tableadapter füllst
kannst du auch die Abfrage per CellClick starten die ein neues DGV füllt..
wo liegt genau das Problem?
lg
ingo
-1 ist die Richtige Antwort...
-1 heisst unbegrenzt..
lg
ingo
Ich hatte das gleiche Problem.
Zur laufzeit wurden nie Daten angezeigt.
Unter Verwendung von Visual Studio 2005.
Hab es nach HOWTO´s von der Firma Crystal und nach HOWTO´s aus der MSDN probiert, die aussagen:
Neues Projekt erstellen,Datenbankverbindung erstellen, neuen CrystalReportViewer in Form ziehen, neuen CrystalReport erstellen,DataTable in CrystalReport einbinden,CrystalReportViewer.ReportSource = CrystalReport.
bzw:
Neues Projekt erstellen,Datenbankverbindung erstellen, neuen CrystalReportViewer in Form ziehen, neuen CrystalReport erstellen,DataTable in CrystalReport einbinden,CrystalReportViewer.ReportSource = CrystalReport. Logoninformationen händisch nachreichen (Server,Datebankname,Kennwort,User)
Bei jedem Versuch,Verbindung zur Datenbank OK, keine Daten bei Laufzeit....
auch nach dem Versuch, auf einem frisch aufgesetztem Rechner... keine Daten bei Laufzeit....
Erst als ich auf die Idee kam, ein "virtuelles" Dataset mit einem "virtuellem" DataTable zu erstellen, und erst bei Laufzeit den virtuellen Table mit Daten aus der Datenbank zu füllen und erst dann das virtuelle Datatable an den CrystalReport zu binden, funktionierte alles.......
Grüsse
Ingo
Das müsste dir helfen:
winkel = arctan((y1-y2) / (x1-x2))
lg
ingo
ich beantworte mir die frage schnell selber:
Ingo, die Lösung für dein Problem ist nicht ,das du etwas in den Vordergrund holen musst, oder nicht.
Es ist klar das ein bringtofront nicht die lösung ist...
sondern das du die Reihenfolge der bearbeitung beachten musst.
Wenn du eine Celle zeichenst, den Button einbindest, und dann nochmal über die Zelle zeichnest, wird der Button immer verschwinden...
Also ordne die Reihenfolge der Bearbeitung..
mfg
Ingo
kurz und bündig die Frage:
Wie bringe ich einen Button, den ich bei "OnCellPaint" miteinbinde, in den Vordergrund?
lg
ingo
Eben genau das ist ja die Aufgabe von "uns" Programmierern...
Etwas zu programmieren, zu erschaffen, dass es dem Benutzer, dem Kunden, ermöglicht, etwas so einfach und mit sowenig Aufwand wie möglich zu erledigen.
Also in dem Fall ein Installationsprogramm zu erstellen, das diese Datenbank einrichtet bzw installiert.
lg
ingo
Warum nimmst du nicht einfach Borderstyle=none für die textbox,
zeichnest einen weissen hintergrund mit border
in dem du die textbox und den button nebeneinander reinstellst?
und das ganze in einer UserControl
wär doch einfacher?
mfg ingo
Ich hab das Projekt gerade mal auf 2 anderen Laptops ausprobiert.
mein Problem ist das dort nun KEINE Buttons angezeigt werden, bzw die Buttons im Hintergrund liegen.
Hab ich da was übersehen?
mfg
ingo
So nach fast einem Monat hab ich nun eine entgültige und gute Lösung selber erarbeitet.
private void dataGridView1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
{
Button button = new Button();
button.Click += new EventHandler(butt_Click);
if (e.ColumnIndex == 5 && e.RowIndex == 2)
{
dataGridView1.Controls.RemoveByKey("Button1");
e.Paint(e.CellBounds, DataGridViewPaintParts.All);
button.SetBounds(e.CellBounds.X, e.CellBounds.Y,e.CellBounds.Width,e.CellBounds.Height - 10);
button.Name = "Button1test";
button.Text = "Button1";
dataGridView1.Controls.Add(button);
e.Handled = true;
}
jetzt im Nachhinein wundere ich mich das da keiner eine Lösung für mich hatte 🙂 weils ja eigentlich sehr einfach ist.
Man erstellt einen Button in Laufzeit, gibt ihm den Cell-Rahmen, bindet ihn an das Datagridview, und löscht ihn bei jedem Cellpainting, wieder bevor man ihn neu zeichnet....
"watschneinfach" wie man bei uns in österreich sagt 🙂
grüsse
ingo
nagut, ich dachte zwar das bliebe mir erspart,
aber da da keiner was in die Richtung "an Celle binden" was weiss,
werd ich den 2. lösungsweg einschlagen
und mich damit beschäftigen wie man eine
Custom-Cell erstellt.
Werd die Lösung dann hier posten..
mfg
ingo
1.ist es möglich ein graphic Objekt an eine cell zu binden?
das zb das Objekt bei einem Datagridview1.cellvalidate() mit-neugepainted wird?
weil nicht die ganze cell aus einem button bestehen soll.
ich will in eine Cell Text und mehre klickbare Objekte reinstellen.
ich zeichne ja zb hiermit ein rechteck rein
e.Graphics.FillRectangle(brush, Posx,Posy,10,10);
aber wie mach ich ich das klickbar?
Wie ich einen text oder einen dropdown in die cell bekomme weiss ich
aber wie bekomme ich zusätzlich zum text zb ein rechteck in die celle das kleiner ist als die celle und noch einen text enthällt.
ich mein das das ganze als eigentständiges objekt anzuklicken ist.
man hat dann eine celle die man anklicken kann und noch ein rechteck in der celle das man eigens anklicken kann?
wie geh ich an das ran?
Original von winSharp93
Du musst ein
>
genau danach hab ich gesucht 🙂 warum müssen diese FAQ´s auch immer so versteckt sein 🙂
es gibt ja zb die funktion
form2.Activated += new EventHandler(form2_Activated);
ich will ein
form2.datagridviewclicked += new EventHandler(form2_datagridviewclicked);