Laden...
Avatar #avatar-2631.jpg
Benutzerbeschreibung
Hobby-Bastler

Forenbeiträge von Lothi Ingesamt 344 Beiträge

16.09.2015 - 16:53 Uhr

Ah ok, dann wird ich das mal probieren. Mit Event meinst Du was genau? Der Fehler entsteht sogar wenn ich im Designer einen Button setze und ausversehen zu schnell geklickt habe und bereits im Codefenster gelandet bin mit entsprechenden Autoeintrag inkl. Platzhalterbeschriftungen und diesen komplett wieder lösche, kann ich schon nicht mehr zum Designerfenster switchen da mich der Fehler schon erwartet. Also gleich zu Form1.Designer.cs changen und dort umbennennen oder den betroffenen Button etc. rauslöschen...

:

Das ist halt das Problem wenn man nicht weiss was eine Klasse ist und wie ein Event und Formular aufgebaut ist.

Wenn du auf den Button doppelt klickt, generiert dir Visual Studio ein Eventhandler Click. Dieser ist dafür da, dass überhaupt etwas passiert wenn du drauf klickst.
Zu diesem EventHandler gehört eine Methode. Diese Methode siehst du dann, wenn du in deiner Form1.cs Datei bist. Löscht du diese Methode von Hand, findet der Designer diese nicht mehr und kann deine schöne Form nicht mehr anzeigen.
Also bevor du die Methode löscht, zuerst den Eintrag im (wie sagst du so schön) "Blitz" löschen.

Gruss Lothi

16.09.2015 - 07:24 Uhr

Hallo,

wo hast du was geändert. Verstehe kein Wort.

Wenn du in Forms1.Desinger.cs was änderst, dann ja.
In der Form1.cs eigentlich nicht.

Gruss Lothi

15.09.2015 - 17:22 Uhr

Nein.
Du gibst beide male eine andere Variable aus.


//Mein Wert ist das Objekt in der Liste.
//Beim Aufruf wird automatisch ToString() aufgerufen.
foreach (int meinWert in meinArray) {
                 Console.WriteLine (meinWert);

             } 


//i ist eine int Variable die du im Schleifenkopf deklariert hast.
//Du gibst einfach nur i aus 
//siehe im Buch for - Schleifen
for (int i = 0; i < meinArray.Length; i++) {
                 Console.WriteLine (i);

             } 

Gruss Lothi

11.09.2015 - 13:46 Uhr

Hallo,

Und da?


double d = geoposition.Coordinate.Point.Position.Longitude;

auch schon ohne Kommastellen? Wenn da gut ist, liegs am ToString().

Gruss Lothi

21.06.2015 - 15:57 Uhr

Falsch ist es nicht, aber ich finde, dass ich die OOP besser mit einem Consolenprogramm lernte als mit Winforms.
Hat man das ganze OOP Zeugs ein bisschen verstanden, so sieht man danach ein Windows Form auch nur noch als einfache Klasse.

Gruss Lothi

10.03.2015 - 12:09 Uhr

Hallo,

Wieso den Double rnd.Value in einen String umwandeln, dann in einen Double parsen und dann wieder in einen String umwandeln zum speichern.

Gruss Lothi

10.03.2015 - 07:29 Uhr

Nun werden seine Kameras aber immer mehr. Also will ich natürlich nicht jedes mal meinem Programm-Code an die Anzahl der Kameras anpassen.

Du brauchst dann doch nur ein Button der dir eine neue Tab erstellt mit dem Usercontrol drin.
Das Usercontrol enthält ja dann auch alle Events.
Was da am Code anzupassen ist verstehe ich jetzt nicht. Machen doch alle das gleiche diese Dinger.

Gruss Lothi

09.03.2015 - 15:33 Uhr

Hallo,

ne ist nicht das gleiche.

Steuerelement ist ein Button. Jetzt kannst du von dem Standart Button ableiten und deine eigenen Funktionalitäten einbauen.

UserControl ist ein Contianer in dem du viele Steuerelemente hinzufügen kannst und dann in deine Tab als "Steuerelement" aufnehmen kannst. Ich glaube das ist das was du willst.

Gruss Lothi

03.03.2015 - 15:31 Uhr

Hallo,

du kannst in WPF ToolTip alles reinhauen was du willst.

http://www.wpftutorial.net/ToolTip.html

Gruss Lothi

02.08.2014 - 11:44 Uhr

Hallo,
hier mein Code aus dem Designer:


 // Form1
            // 
            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.ClientSize = new System.Drawing.Size(284, 261);
            this.Controls.Add(this.button2);
            this.Controls.Add(this.button1);
            this.Name = "Form1";
            this.Text = "Form1";
            this.ResumeLayout(false);

Wenn mal eine Antwort weiss sind ander immer schneller. 😉

Gruss Lothi

24.06.2014 - 23:04 Uhr

Hmmm... vielleicht verstehst du mich nicht.
Das ist deine Übersicht. Du willst jetzt eine Tabelle die diese Daten enthält um diese dann anzeigen zu können. Über diese Anzeige willst du dann zu den jeweiligen Details gelangen um diese bearbeiten zu können. Richtig?

Das sieht in etwas wie folgt aus:
Muster Hans (ID 25)

  • Adressen
    -- Postanschrift
    -- Hauptanschrift
  • Kommunikationsdaten
    -- E-Mail
    -- Telefon
  • Dienstverhältnisse
    -- 01.01.2008 - 31.12.2009
    -- 01.01.2010 - offen
  • Fortbildungen
    -- 01.01.2008 - 14.01.2008
    -- ...

Fett sind Tabellen richtig?
Da kannst doch schön eine Abfrage mit den Daten für die Ansicht in der DB erstellen. Diese nimmst du dann mit ins EF wie eine Tabelle.

Vielleicht seh ich das zu einfach.

Gruss Lothi

24.06.2014 - 22:07 Uhr

Eigentlich sehe ich das so wie Diräkt.
Um bei deinem Beispiel zu beiben:

historische Speicherung von Anwendungsfällen zu einer Person. Von wann bis wann war sie krank. Hat sie Atteste zur Krankheit vorgelegt? Wann hat sie die Krankheit gemeldet?...

Da ja eine Person mehrer solcher Atteste in seiner Laufbahn bringen kann, ist es keine 1:1 Beziehung mehr.
Auch dein Beispiel mit der Adresse ist keine 1:1 Beziehung. Eine Person kann in seinem Leben mehrmals die Adresse ändern also auch wieder eine 1:n Beziehung.
1:1 verstehe ich zum Beispiel wenn du der Name der Person in einer Tabelle hast und das Geburtsdatum in einer anderen Tabelle.

Alles wickelt sich ja über die Person ID ab.
Du kannst ja schon eine View in der Datenbank mit den Daten, welche in der Vorgangsbaum angezeigt werden sollen, zusammenstellen.
Später kommst du dann ja über die ID auf die einzelnen Daten aus den Tabellen.

Gruss Lothi

08.12.2013 - 11:20 Uhr

falscher Beitrag

Gruss Lothi

02.09.2013 - 11:49 Uhr

Hallo

  1. Erstellst du bei jeder TabPage eine neue Tabelle und 2. für was brauchst du 2 Schleifen um die Namen der TabPage auszulesen? (Rhetorische Frage)

Gruss Lothi

16.05.2013 - 17:51 Uhr

Hallo

Als Parameter von OnPropertyChanged() solltest du den den Namen des Property übergeben und das ist Text_old 😉

Gruss Lothi

16.05.2013 - 17:41 Uhr
public string Text_old
        {
            get
            {
                return text_old;
            }
            set
            {
               text_old = value;
               OnPropertyChanged("Text_alt");
            }
        }

Text_alt oder Text_old?

Gruss Lothi

02.04.2013 - 08:29 Uhr

Hallo

Wenn du die Ctrl Taste drückst, wird die Box transparent und du kannst beides Lesen.

Gruss Lothi

14.01.2013 - 10:57 Uhr

Hallo zusammen

Seit es WPF gibt, gibt es unterschiedliche Strukturen für Positionen und Grössen

System.Windows.Rect
System.Windows.Size
System.Windows.Point

System.Drawing.RectangleF
System.Drawing.Rectangle
+die Point und Size Strukturen

Wenn ich jetzt eine Klassenbiblithek erstellen will, welche der beiden Namespace ist sinnvoller, um die Klassen in Windows.Form und in Window einsetzen zu können.

Gruss Lothi

03.01.2013 - 18:05 Uhr

Hallo

Darf ich Dir diesen Artikel Empfehlen?
[Tutorial] Konfigurationsmodell im .NET Framework

Gruss Lothi

26.12.2012 - 18:33 Uhr

Hallo

Aber die AutorID hat in der Tabelle Book nigs verloren. Der Autor und das Buch werden in der Zwischentabelle zusammengeführt.

Gruss Lothi

Ergänzung: Ups... habe die letzte Zeile von FZelle nicht gelesen.

30.09.2012 - 20:29 Uhr

Hallo

Ich habe das 2. Buch.
Es wird seitenlang die Properties aufgelistet, mit der gleichen Erklärung wie in der MS Hilfe.
Ich war ziemlich entäuscht.

Gruss Lothi

22.05.2012 - 20:31 Uhr

Hallo,

Ich glaube du wirst kein Buch finden, welches genau das beinhaltet, dass du gerne hättest.
Ich habe mit dem Online Buch angefangen. Da wird alles von Anfang an erklärt. Auch das VS selber wird gut erklärt und Debuggen.
Vieles muss man halt ausprobieren und in der MS Hilfe nachschlagen. Die Frameworkklassen findet man alle in der Hilfe F1 hilft.
Für mich war eigentlich nicht das schwierigste die Sprache selber zu lernen, sondern das Programmieren im gesamten.
(Ich hasse die OOP Beispiele mit dem Auto)

Gruss Lothi; ein Anfänger

27.02.2012 - 18:20 Uhr

Hallo
Sieht aus wie das Tabellen- und Textverarbeitungsprogramm von Google.
Ob da was im Busch ist? 8)

Gruss Lothi

05.02.2012 - 09:26 Uhr

Hi

Und macht es einen Unterschied?

Wenn du gucken willst, ob die Inhalte der Klasse gleich sind, muss du die Inhalte der Klassen (edit: oder Zettel 8)) vergleichen.
Dafür kannst du in der zu prüfenden Klasse Equals() überschreiben.

Gruss Lothi

01.02.2012 - 16:21 Uhr

Hallo

Im Prinzip sollte man darauf achten, daß alle Benutzereingaben soweit wie möglich validiert werden, um dann an dieser Stelle darauf reagieren zu können.

Und wenn die Eingabe nicht i.O ist, muss man das doch dem Benutzer melden, also muss ja wieder eine Exception ausgelöst werden.

In der Datenschicht kannst man ja nicht einfach MessageBox("Da ist ein Fehler!").Show() anzeigen.
Die Information muss doch mit throw new Exception() weitergegeben werden? Oder?

Gruss Lothi

23.01.2012 - 19:58 Uhr

Naja dachte ich mir fast.

Ich werde das mit einer Eigenschaft machen, die auf korrupt gestellt wird, wenn die Struktur nicht mehr Rückgängig gemacht werden konnte.
So kann ich, bevor das nächste Mal Daten in den Ordner gespeichert werden sollen, dem Benutzer melden, dass der vorhandene Speicherort korrupt ist.


             catch
            {
               try
              {
                 if(deltaV != null)
                     deltaV.Delete(true);
                 set.Korrupt = false;
                 throw;
               }
               catch
              {
                 set.Korrupt = true;
                 throw;
               }
            }

Irgendsowas in der Art. Ich weiss bin ein halt ein bastler.

Gruss Lothi

23.01.2012 - 18:37 Uhr

Hallo zusammen

Bei folgendem Code möchte ich, wenn das Erstellen der Ordner schief geht, diese wieder löschen.
Nun kann es bei meiner Aufräum Aktion im catch Block wieder zu einer Exception kommen.
Wie wird das in diesem Fall gehandhabt? Ich will keine halb erstellte Ordnerstruktur haben. Entweder werden alle erstellt oder gar nichts.


public static void Struktur(String Pfad)
        {
            DirectoryInfo deltaV = null;
            try
            {
                ReSPC_Data set = new ReSPC_Data();
                
                deltaV = new DirectoryInfo(Path.Combine(Pfad, "DELTAV"));

                deltaV.Create();
                set.Strukturpfad = deltaV.FullName;
                deltaV.CreateSubdirectory("Operations");
                deltaV.CreateSubdirectory("Enums");
                deltaV.CreateSubdirectory("Procedures");
                deltaV.CreateSubdirectory("Unitprocedures");
            }
            catch
            {
                if(deltaV != null)
                    deltaV.Delete(true);               
                throw;
            }
        }

Wie das vorgehen, wenn Code im Catchblock, auch eine Exception auslösen kann.

Danke und Gruss
Lothi

22.01.2012 - 21:51 Uhr

Hallo

Die Objekte erstelle ich aus einer Textdatei, welche ich von einem externen Programm bekomme. Das Programm erwartet dann auch wieder ein gleiches Format zurück.

Sieht vereinfacht so aus:


BATCH_RECIPE NAME="OP_AUSTR_GS" TYPE=OPERATION CATEGORY="Recipes/Operations"
 user="ADMINISTRATOR" time=1315290854/* "06-Sep-2011 08:34:14" */
{
  DESCRIPTION="Grundschichtaustrag OP Zentrifuge"
  FORMULA_PARAMETER NAME="FP_BESCHREI_TEXT" TYPE=UNICODE_STRING
  {
    CONNECTION=INPUT
    RECTANGLE= { X=-50 Y=-50 H=1 W=1 }
  }
  ATTRIBUTE_INSTANCE NAME="FP_BESCHREI_TEXT"
  {
    VALUE { CV="" }
  }
}

Also eine Klasse Operation ("OP_AUSTR_GS") die in einer 1:n Beziehung mit der Klasse Parameter steht.
Vom User darf nur VALUE geändert werden.
Will der User eine neue Operation erstellen, wird eine Kopie von der Standart Operation erstellt, der er ein neuen Namen geben muss, wenn die alte nicht überschrieben werden soll. Das zu prüfen ist die Sache vom Benutzer.

Der Benutzer meiner DLL, bekommt von mir eine Klasse OperationListe, aus der er alle Operationen mit den Parameter bekommt.
Ich erwarte dann von ihm eine geänderte Operation oder geänderte Operationen in einer Liste zurück.
Diese Daten werden dann wieder als Textdatei gespeichert, die vorhanden OP überschrieben, die Neuen neu angelegt.

Wie der User die Value-Werte ändert weiss ich nicht. Wenn ich jetzt mein geschreibsel so lese, glaube ich nicht, dass ich INotifyPropertyChanged brauche.

Das Designe ist komplizierter als ich am Anfang vom Projekt gedacht habe. 8)
Gruss Lothi

22.01.2012 - 13:25 Uhr

Hallo

Vielen Dank für die Ratschläge.
Wenigstens bin oder war ich nicht ganz auf dem Holzweg. Habe mich ein bisschen mit der Datenbindung beschäftigt und wurde dadurch unsicher.
Werde also bei List<T> bleiben.

Vielen Dank und Gruss
Lothi

22.01.2012 - 10:53 Uhr

Hallo zusammen

Mir kam einfach kein besserer Titel in den Sinn.

Ich bin dabei eine dll zu erstellen, welche geparste Objekte aus Textdateien als Objekte und Listen zur Anzeige oder Weiterverarbeitung bereit stellt.
Da ich nicht weiss was mit den Daten weiter gemacht wird (Consolen Anwendung, Internet, WPF, Forms...), weiss ich jetzt nicht genau, wie und in welcher Form ich die Listen zur Verfügung stellen soll.

Soll ich schon in meiner DLL überall INotifyPropertyChanged impementieren und BindingList<T> zurückgeben. Oder einfach normale Listen (List<T>, Collection<T>).
Die Daten können auch nur für Berechnungen benutzt werden, die dann nicht gebunden werden.

Wie ist das vorgehen?

Vielen Dank und Gruss
Lothi

05.11.2011 - 18:25 Uhr

Hallo

Meine Informationen zu dem Thema habe ich von hier:

Google Code
Geo API

Gruss Lothi

24.10.2011 - 09:57 Uhr

Hallo

Du solltest die definierten Parameter noch dem OleDbCommand übergeben.

Die "@" brauchst auch nicht.


@"INSERT INTO Tabellenname (p1,p2) VALUES (?,?)

Gruss Lothi

20.04.2011 - 17:25 Uhr

Hallo

Hatte die Seite noch offen:

Bei UPDATE-Anweisungen, INSERT-Anweisungen und DELETE-Anweisungen ist der Rückgabewert die Anzahl der vom Befehl betroffenen Zeilen.Wenn in einer eingefügten oder aktualisierten Tabelle ein Trigger vorhanden ist, enthält der Rückgabewert die Anzahl der durch den Einfüge- und Aktualisierungsvorgang betroffenen Zeilen sowie die Anzahl der Zeilen, die durch den oder die Trigger beeinflusst werden.Bei allen anderen Anweisungstypen ist der Rückgabewert -1.Wenn ein Rollback ausgeführt wird, ist der Rückgabewert ebenfalls -1.

http://msdn.microsoft.com/de-de/library/system.data.sqlclient.sqlcommand.executenonquery.aspx

Gruss Lothi

04.07.2010 - 21:10 Uhr

Hallo

Also ich radle.
Immer zur Arbeit und zum Spass.
So ca. 300-400km pro normale Woche.

Und Morgen gehts über ein paar Alpenpässe 👍 👍

Gruss Lothi

20.06.2010 - 21:37 Uhr

Hallo

Ja das ist nur ein Ausschnitt. Die XML ist korrekt.
Im Firefox wird die Xml korrekt angezeigt.
Wenn ich die XML in ein DataSet einlese funktionierts auch, also liegt es ganz sicher nicht an der Orginal XML.

Die fehlenden Daten erscheinen aber unter dem NodeType "Text".

Gruss Lothi;der noch verwirrter wird.

20.06.2010 - 19:41 Uhr

verwendetes Datenbanksystem: XML

Hallo

Ich möchte mit dem XmlReader die Daten aus einer XML Datei auslesen.
Die Datei ist ohne Leerzeichen und Zeilenumbrüche.
Um die richtigen Daten zu erwischen, habe ich mir einen Teil der Datei formatiert.
Mit einer Funktion durchlaufe ich die XML und lese die Daten aus. Das Problem ist nun, dass es ein Element in der Unformatierten Version nicht ausliesst.


<Trackpoint><Time>2010-05-24T10:13:46Z</Time><Position><LatitudeDegrees>46.325853</LatitudeDegrees><LongitudeDegrees>7.989642</LongitudeDegrees></Position>
<AltitudeMeters>695.957</AltitudeMeters>
<DistanceMeters>0.093</DistanceMeters>
<HeartRateBpm><Value>93</Value></HeartRateBpm>
</Trackpoint>

Hier funktioniert das Auslesen von DistanceMeters

<Trackpoint><Time>2010-05-24T10:13:49Z</Time><Position><LatitudeDegrees>46.325806</LatitudeDegrees><LongitudeDegrees>7.989683</LongitudeDegrees></Position><AltitudeMeters>695.275</AltitudeMeters><DistanceMeters>5.825</DistanceMeters><HeartRateBpm><Value>87</Value></HeartRateBpm>
</Trackpoint>

Alles wird ausgelesen nur DistanceMeters nicht?

Was könnte das sein?
Komischerweise wird das EndElement erwischt.
Falls erwünscht kann ich ein Beispiel Projekt anhängen.

Debug.Print(xrd3.NodeType.ToString() + " " + xrd3.Name);
Gibt folgendes aus:


Element Trackpoint
Whitespace 
Element Time
Element Position
Whitespace 
Element LatitudeDegrees
Text 
EndElement LatitudeDegrees
Whitespace 
Element LongitudeDegrees
Text 
EndElement LongitudeDegrees
Whitespace 
EndElement Position
Whitespace                <==== Meine Formatierung
Element AltitudeMeters
Element DistanceMeters <=== Element ist da
Element HeartRateBpm
Whitespace 
Element Value
EndElement HeartRateBpm
Whitespace 
EndElement Trackpoint
------------------------------------------------------------
Element Trackpoint
Element Time
Element LatitudeDegrees
Text 
EndElement LatitudeDegrees
Element LongitudeDegrees
Text 
EndElement LongitudeDegrees
EndElement Position
Whitespace 
Element AltitudeMeters
Element DistanceMeters
Element HeartRateBpm
Element Value
Whitespace 
EndElement Trackpoint
--------------------------------------------------------
Element Trackpoint
Element Time
Element LatitudeDegrees
Text 
EndElement LatitudeDegrees
Element LongitudeDegrees
Text 
EndElement LongitudeDegrees
EndElement Position
Element AltitudeMeters
Text 
EndElement DistanceMeters <====== Ab hier ist nur das EndElement
Element HeartRateBpm
Element Value
Whitespace 
EndElement Trackpoint
------------------------------------------------
Element Trackpoint
Element Time
Element LatitudeDegrees
Text 
EndElement LatitudeDegrees
Element LongitudeDegrees
Text 
EndElement LongitudeDegrees
EndElement Position
Element AltitudeMeters
Text 
EndElement DistanceMeters
Element HeartRateBpm
Element Value
EndElement Trackpoint
-------------------------------------------------------------
Element Trackpoint
 

Gruss Lothi; der verwirrt ist

01.05.2010 - 21:02 Uhr

Hallo

Also nichts für ungut aber:

Das Programm wird von absoluten DAU's betrieben, die Meldungen wirklich lesen bevor sie sie wegklicken, das erklärt auch dein problem Tarion ..

Ich weiss ich kenne diese Probleme wenn sich Programme anders verhalten als man es gewohnt ist, doch der durchschn doch als Programmierer will ich eben eine Bestätigung vor den schließen

Schlimmer ist es wenn sie irgendwie draufklicken und dann das Programm nicht mehr starten können weil sie nicht wissen wie ..

Tschuldigung, aber so etwas von überheblich. Es gibt DAUS die schlauer sind als der Programmierer.

(letzer Kommentar von mir)

Gruss Lothi

21.04.2010 - 09:27 Uhr

Hallo

Wenn das Datum in der Access-Datenbank ein DateTime ist, musst du das Datum in der SQl mit ## umschliessen.

Wenn du mit Variablen in C# arbeitest mach es mit Parameter.

Gruss Lothi

08.04.2010 - 09:24 Uhr

Hallo

Das Problem habe ich mit Vista auch. Bei "Dokumente und Einstellungen", Benutzer u.s.w passiert das gleiche.

Ich filtriere die Deutschen Namen jetzt mit einer Fehlerbehandlung raus und es bleiben nur noch die englischen Namen übrig.

Wieso das so ist weiss ich nicht. Ich tippe auch eher auf Alias Namen, aber dann sollte das gleiche auch auf französchischen oder italienischen Systemen auftreten.

Gruss Lothi

05.04.2010 - 08:56 Uhr

Hallo

Nein viele werden es nicht.

Wenn ich die Bilder grösser mache, blinket das erste Bild auf und flutsch weg ist es wieder.

Mit einer TextBox funktionierts, wenn

MultiLine = false

ist, mit

MultiLine true 

gehts wieder nicht.

Bei einem Panel mit dem Hintergrund blau gehts auch wieder nicht.

Debug Ausgabe:

MultiLine = false

Erste: {Width=100, Height=20}
2
\**************************************************************
Grösse: {Width=100, Height=20}, Position: {X=3,Y=3} 
 C:\\Users\lothi\Pictures\2008-10\24102008027.jpg
\**************************************************************
\**************************************************************
Grösse: {Width=100, Height=20}, Position: {X=109,Y=3} 
 C:\\Users\lothi\Pictures\2008-10\24102008028.jpg
\**************************************************************

Debug Ausgabe:

MultiLine = true

Erste: {Width=100, Height=100}
2
\**************************************************************
Grösse: {Width=100, Height=0}, Position: {X=3,Y=3} 
 C:\\Users\lothi\Pictures\2008-10\24102008032.jpg
\**************************************************************
\**************************************************************
Grösse: {Width=100, Height=0}, Position: {X=109,Y=3} 
 C:\\Users\lothi\Pictures\2008-10\24102008033.jpg
\**************************************************************

Jetzt werde ich das ganze mal auf einem TableLayoutPanel erstellen.

Gruss Lothi

05.04.2010 - 07:39 Uhr

Guten Morgen

Folgendes Problem:
Ich möchte in einem FlowLayoutPanel Bilder zuweisen.
Dazu habe ich folgenden Code:


public void Add(string FullPath, Image Picture)
    {
      if (Picture == null || String.IsNullOrEmpty(FullPath)) return;      
      if (!_imagelist.ContainsKey(FullPath))
      {
        SuspendLayout();
         _newpic = new PictureBox();
         _newpic.Width = 80;
         _newpic.Height = 80;
         _newpic.Image = Picture;
         _newpic.Tag = FullPath;
         _newpic.Dock = DockStyle.Fill;         
         _newpic.SizeMode = PictureBoxSizeMode.Zoom;         
         _imagelist.Add(FullPath, _newpic);
        //??????????????????????????????????????????????????????
         Debug.WriteLine("Erste: " + _newpic.Size.ToString());
         //??????????????????????????????????????????????????????
          Control[] cs = _imagelist.Values.ToArray(); 
          Controls.AddRange(cs);
          ResumeLayout();
          //??????????????????????????????????????????????????????
          Debug.WriteLine(Controls.Count.ToString());
          foreach (Control c in Controls)
          {
            Debug.WriteLine("**************************************************************");
            Debug.WriteLine(String.Format("Grösse: {0}, Position: {1} \r {2}"
                                            , c.Size.ToString()
                                            , c.Location.ToString()
                                            , c.Tag.ToString()));

            Debug.WriteLine("**************************************************************");
          }
        //??????????????????????????????????????????????????????
       }      
     }

Wenn ich ohne ohne SusbndLayout() arbeite bekomme ich folgende Ausgabe:


Erste: {Width=80, Height=80}
2
\**************************************************************
Grösse: {Width=80, Height=0}, Position: {X=3,Y=3} 
 C:\\Users\lothi\Pictures\2008-12\07122008097.jpg
\**************************************************************
\**************************************************************
Grösse: {Width=80, Height=0}, Position: {X=89,Y=3} 
 C:\\Users\lothi\Pictures\2008-12\07122008098.jpg
\**************************************************************

Die Höhe der PictureBox nach dem einfügen ist 0 und es wird nichts angezeigt. Beim erstellen der PictureBox ist die Höhe auf 80 Pixel
(Erste: {Width=80, Height=80})

Mit SuspendLayout() bekomme ich als Position immer 0 und die Bilder überlagern sich.
Wenn ich SuspendLayout() und ResumeLayout() benutze bekomme ich auch wieder eine Höhe von 0.

Wie bekomme ich denn nun die Fotos auf meinem Panel angezeigt.
Falls erwünscht habe ich ein Beispiel erstellt um zu testen ob dort er selbe effekt auftaucht. Und das hat es. Es liegt also an mir.
Gruss Lothi

28.03.2010 - 19:20 Uhr

Hallo

Ctrl+F gehört nicht dazu laut MSDN:


STRG+Z 

STRG+E 

STRG+C 

STRG+Y 

STRG+X 

STRG+RÜCKTASTE 

STRG+V 

STRG+ENTF 

STRG+A 

UMSCHALTTASTE+ENTF 

STRG+L 

UMSCHALTTASTE+EINFG 

STRG+R 


In den Eigenschaften der Form kannst du das Maximieren und Minimieren abstellen.

"undo/redo geht ebenfalls nicht" wie man das macht gibs hier im Forum auch ein Beispiel
Re- /undo
-->edit: Vergessen Tastenkombination funktionieren!

Wenn du einen Texteditor suchst findest du sicher im eine Komponente die das alles kann.
Ich glaube auch das hier im Forum weiter führenden links für ein Texteditor gibt.

Gruss Lothi

28.03.2010 - 17:42 Uhr

Hallo

RichTextBox

Da ist so etwas mit eingebaut.
Sonst einfach aus einer Form nachbauen.

Gruss Lothi

28.03.2010 - 14:47 Uhr

Hallo

Der Button, der den Event auslöst liegt im sender verborgen. Über den sender kriegst du dann den Namen des Button raus oder du kannst in der Tag-Eigenschaft beim erstellen des einzelnen Button irgend etwas angeben was den Button idendifiziert

Gruss Lothi

18.03.2010 - 07:01 Uhr

Hallo

Ich habe jetzt nicht genau verstanden um was es geht, aber es sollte doch zwei Tabelle reichen

tblAttachment
id
idArt --> Frage, Antwort, Sonnstiges

tblKommentare
id
idArt --> Fragen, Antwort, Sonntiges
id_Attachment

Gruss Lothi

12.03.2010 - 05:57 Uhr

Hallo

Und wie hast du die Datenbank erstellt? Um eine Datenbank zu erstellen musst du doch schon mal Zugriff zum Server gehabt haben.

Der Fehler zeigt ja an das du kein Recht hast deine Datenbank zu benutzten. Vielleicht hast du ja auch kein Recht von aussen auf die DB zuzugreifen.

Gruss Lothi

11.03.2010 - 20:48 Uhr

Hallo

Der Provider ist auch nicht schuld am Fehler.
Da kann ich dir nicht helfen.
Hast du denn es jetzt mal mit dem phpAdmin probiert?

Gruss Lothi

11.03.2010 - 20:17 Uhr

Hallo
laut Fehlermeldung kann der Username oder das Passwort nicht stimmen.
Ist der User nicht standartmässig ROOT?

Ausserdem würde ich bei mySQL nicht den ODBC Provider nehmen sondern den mysql .net provider. Kann man von der mySQL Webseite downloaden.

Schau doch wie du mit dem MySQLAdmin-Tool in die DB kommst, dann siehst du auch wie die Verbindungsfolge ist die du dann benutzten kannst.

Gruss Lothi

11.03.2010 - 20:07 Uhr

Hallo

Ja, das glaub ich dir.
Du benutzt COUNT(*) diese Funktion gibt 0 zurück, also steht in der ersten Zeile in der ersten Spalte 0 und nicht NULL.

Gruss Lothi