Laden...
Avatar #avatar-1931.jpg
Friedel myCSharp.de - Member
Nähe Kassel / Hessen Dabei seit 19.08.2005 830 Beiträge
Benutzerbeschreibung

Forenbeiträge von Friedel Ingesamt 830 Beiträge

08.08.2007 - 11:53 Uhr

Hallo dennisspohr,

Codeproject

Gruss
Friedel

08.08.2007 - 11:40 Uhr

Hallo und Willkommen im Forum,

zu deiner Frage gibt es schon reichlich Threads.

Such: Drag&Drop ListView

Gruss
Friedel

PS: Falls die nicht helfen, was ich nicht glaube, schreib was du schon kannst und wo es scheitert.

08.08.2007 - 11:15 Uhr

Also wird beim klick auf den 'Mitarbeiter löschen'-Button der gesamte Datensatz (Mitarbeiter) gelöscht. Also wie Noodles gesagt hat, ID zum Datensatz speichern, vorzugsweise in der Tag-Eigenschaft und diesen entsprechenden Datensatz mit der ID löschen.

Oder:
Du schreibst dir eine eigene Klasse Mitarbeiter, welche die einzelnen Eigenschaften (Name, Vorname, Telefonnummer, usw) hat, überschreibst die Methode ToString() und weißt einem ListBoxItem eine Instanz dieser Klasse zu.
Dann hast du beim Löschen nun wirklich alles 🙂

Gruss
Friedel

08.08.2007 - 11:10 Uhr

Hallo dr4g0n76,

grundsätzlich stimme ich deinen Erfahrungen zu, aber macht es wirklich sinn, private Methoden so zu testen? Ich meine damit nicht, das es Sinnfrei ist, diese überhaupt zu testen, aber via Reflection?
Eine interne, oder private Methode wird ja nicht aus Jux aufgerufen, und irgendwas macht die Methode ja schliesslich auch. Ist es dann nicht sinnvoll zu versuchen, das korrekte Arbeiten der Methode dadurch zu ermitteln, indem man von "aussen" die Dinge anstößt, welche die entsprechende Methode nutzen und das Ergebnis (Zustand des Objektes) entsprechend zu vergleichen? Schliesslich ist der UnitTest doch dazu gedacht, zu mindest meines Verständnisses nach, das Verhalten von Objekten nach aussen hin zu überprüfen, also das sich z.B. nichts in der Verwendung der Klasse und deren Methoden (gibt nach der Änderung 5 statt 1 zurück) ändert. Wie die Werte intern ermittelt (berechnet) werden, kann mir als Anwender (und auch den Tests???) Schnuppe sein, oder?

Eingabe > Ausgabe > Änderung > Selbe Eingabe > Selbe Ausgabe

Gruss
Friedel

08.08.2007 - 10:58 Uhr

Hallo JSheltom,

mach der Methode mal deutlich, dass diese System.Xml.XmlReader zurückgeben soll. Du scheinst in einem deiner Namespaces noch eine eigene Klasse mit dem Namen XmlReader zu haben!???.


[WebMethod]
    public System.Xml.XmlReader getReader()
    {
      System.Xml.XmlReader reader  = System.Xml.XmlReader.Create(...);
      ...
      return reader;
    }

Gruss
Friedel

08.08.2007 - 10:51 Uhr

Hallo haxXxy,

die Vorgehensweise dieses Problem zu lösen, hängt sehr davon ab, wie deine Daten an die ListBox "gebunden" sind. Erzeugst du die Einträge von Hand, wenn ja mit einem String, oder mit einem eigenen Typen.

In der Tag-Eigenschaft des ListBoxItem kannst du hinterlegen, um welchen Eintrag es sich handelt (wie von Noodles vorgeschlagen, die ID).
Wenn ich dich richtig verstehe, hast du in den Einträgen der ListBox Name + Telefonnummer + X, also den kompletten Datensatz aus der DB. Also muss der komplette DS aus der DB gelöscht werden, wenn der Löschen-Button geklickt wird. ID aus Tag nutzen...

Gruss
Friedel

08.08.2007 - 10:23 Uhr

Hallo the_lmich,

besser so wie herbivore sagt:


PropertyInfo pInfo = o.GetType().GetProperty("name"); //name ist Property in Class1
FieldInfo fInfo = o.GetType().GetField("name", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic) // name ist private, oder public Field in Class1

Den Wert bekommst du für die Propery-Variante bspw. so:


object value = pInfo.GetValue(o, new object[]{ });

Gruss
Friedel

07.08.2007 - 17:03 Uhr

Hallo CongoFX,

nutze zwar derzeit noch nicht 3.0, aber die Fehlermeldung sagt doch aus, dass es sich um eine partielle Klasse handelt und ein Teil von A erbt der andere anscheinend von B.

Schau mal in dem anderen Teil der Klasse (vermutlich Knoten aufklappen) von welcher dieser erbt.

Gruss
Friedel

07.08.2007 - 16:59 Uhr

Hallo husky410,

das liegt IMO nicht am PropertyGrid, sondern am Font-Dialog. Warum das so ist kann ich dir nicht sagen, wahrscheinlich hat sich BILL das irgendwann mal ausgedacht (vielleicht ein Überbleibsel aus alten Tagen). Setzt du aber die Eigenschaft Size "direkt" im PropertyGrid, also im aufgeklappten Knoten, wird der Wert korrekt überrnommen.

Gruss
Friedel

07.08.2007 - 16:28 Uhr

Hallo @all,


DECLARE @TableName varchar(100);
DECLARE @Part1 varchar(100);
DECLARE @Part2 varchar(100);

SET @Part1 = 'Fi';
SET @Part2 = 'le';
SET @TableName = @Part1 + @Part2;

exec('SELECT * FROM ' + @TableName)

Gruss
Friedel

30.07.2007 - 12:42 Uhr

Hallo Stu42,

nutze besser die Events Drag, Drop, GiveFeedback, dann sollte sich m.E. dein Problem erledigt haben.

edit: Vielleicht solltest du dir auch überlegen, "nur" einen Rahmen der Controls zu verschieben, und nicht das ganze Control direkt.

Gruss
Friedel

23.07.2007 - 12:14 Uhr

Hallo pro,

ich glaube die SP kommt aus der Datei XPSTAR90.dll schau mal nach, ob du die Dll hast.

Pfad: C:\Programme\Microsoft SQL Server\MSSQL.1\MSSQL\Binn

Gruss
Friedel

20.07.2007 - 11:28 Uhr

Hallo,

Nodes haben eine Tag Eigenschaft, in welche du ein object packen kannst (GroupID-Daten). Wenn die Form erst geöffnet wird, wenn du klickst, erstelle die Form mit einem entsprechenden Konstruktor, sonst rufe eine Methode der Form auf, welche die Daten anzeigen soll.

Gruss
Friedel

20.07.2007 - 11:09 Uhr

Eine Access DB kann man anscheinend nicht (in der Oberfläche) komplett exportieren, sondern nur die einzelnen Tabellen.

Rechtsklick auf entsprechende Tabelle -> Exportieren -> XML wählen -> Dateinamen angeben.

Im Code kannst du dann die Daten mit der ReadXmlSchema()- und der ReadXml()-Methode eines DataSet die Daten in ein DS einlesen. Mit Hilfe eines DataAdapter kannst du das DS dann z.B. in eine andere DB speichern, oder sonstwas.

Gruss
Friedel

20.07.2007 - 10:33 Uhr

Hallo detrix,

das kommt wohl ganz auf das Datenmodel drauf an. Wenn ich die Grafik richtig verstehe, möchtest du Hauptsächlich mit der IP arbeiten. Also wäre mein vorschlag ein Dictonary<IP, List<ClientInfo>> (oder so ähnlich), da du so schnell auf die Liste aller Clients zugreifen kannst, welche zu einer bestimmten IP gehören.

Gruss
Friedel

20.07.2007 - 10:29 Uhr

Na dann scheint dir mein Post auf deine erste Frage ja geholfen zu haben...
Nicht zu danken.

Zu deiner neuen Frage:
Das geht nicht, aber du kannst deine Tabelle als *.txt Datei speichern, dann hast du alle Einträge in dieser Datei das Schema wird ebenfalls in dem gewählten Ordner abgelegt.

Friedel

20.07.2007 - 09:44 Uhr

Hallo FZelle,

danke für die Antwort.

Und ich hoffe, DU benutzt nicht die alten SqlCE sondern die neue SQL-Server Compact.

Ja, ich benutze SQL Server 2005 Compact Edition...

Finde es aber sehr unschön, während der Startphase (Splashscreen) die DB bereits zu initialisieren, da ich vorher nicht weiß, ob der User die DB überhaupt benutzen will.
Das laden der DLLs sehe ich ja noch ein, aber warum das erstellen der Indizes? Die müssen in der DB doch entsprechend gespeichert sein..., oder berechnet er die jedesmal neu (🙄 )? Sicherlich nicht, oder?

Gruss
Friedel

20.07.2007 - 09:38 Uhr

Hallo roithi,

hier wird erklärt, wie eine Access-Datenbankdatei angelegt wird. Tabellen fügst du dann über die entsprechenden SQL-Befehle ein, wie in "jeder" anderen Datenbank auch.

Gruss
Friedel

20.07.2007 - 07:54 Uhr

Hallo,

ich benutze als Embedded DB die Datenbank MSSql CE. Eine wie ich finde schnelle und gute Lösung von Microsoft 👍

Allerdings erscheint es mir so, oder besser, es ist so, dass die Datenbank bei der ersten Abfrage die auf diese losgelassen wird sehr langsam reagiert. Selbst eine simple Abfrage mit wenigen Results dauert m.E. viel zu lang. Eine komplexere, welche danach ausgeführt wird läuft dann erheblich schneller. Warum ist dem so und was kann ich dagegen tun?

Danke

Gruss
Friedel

19.07.2007 - 15:58 Uhr

Hallo,

hast du evtl. eine Eigenschaft (getter und setter) in dieser Form/Control, welches diese Schnittstelle implementieren könnte?

Gruss
Friedel

19.07.2007 - 12:36 Uhr

Hallo diana,

ich weiß ja nicht, wie fest deine Namensgebung sein muss, aber evtl. kannst du den Namen so aufbauen: nameDerDatei.12345.txt. Dann kannst du die Nummer ganz einfach herausfiltern und der nameDerDatei ist völlig "schnuppe". Die höchste Nummer herauszufind kannst du entweder, indem du durch alle Dateien durchgehst, oder du nimmst die zu letzt erstellte Datei und deren Nummer als höchste (sicherlich sehr unsicher, kommt auf die Umgebung an).

Gruss
Friedel

19.07.2007 - 10:01 Uhr

Wurd heute schon hier beantwortet.

Gruss
Friedel

19.07.2007 - 09:27 Uhr

Hallo Christel,

wir denn die Zeile txtResult.Text = "event"; bzw. nach vertauschen die Zeile Trace.send("EcoTest event received."); überhaupt erreicht (Breakpoint)?

Gruss
Friedel

18.07.2007 - 16:41 Uhr

Hallo Nightmare_82,

wie kommst du darauf, dass das funktionieren soll? Das sind meines Erachtens zwei völlig unterschiedliche Anwendungsfälle.

Schau dir mal was über die IDataGridViewEditingControl-Schnittstelle an und den Artikel Gewusst wie: Hosten von Steuerelementen in DataGridView-Zellen in Windows Forms

Gruss
Friedel

//Edit: Willkommen im Forum

18.07.2007 - 10:40 Uhr

Hallo kingdave2nd und willkommen im Forum,

um dir helfen zu können, müssten wir etwas mehr Informationen haben. Wie sieht zum Beispiel deine Methode zum Zeichnen des Charts aus, wie und wann wird diese aufgerufen, usw.

Am besten mal den entsprechenden Code posten.

Gruss
Friedel

17.07.2007 - 15:37 Uhr

Also mir nicht...

Finde die Lösung allemal besser als die vorherigen Lösungsansätze, welche mit Sicherheit für mehr Probleme gesorgt hätten.

Gruss
Friedel

17.07.2007 - 13:04 Uhr

Hallo,

das würde ich allerdings tunlichst lassen.

Ein Control sollte/darf nicht entscheiden, welches Control im Parent als nächstes den Focus bekommen soll.

Nimm lieber ein Event für deine Textbox, wenn die Enter-Taste gedrückt wird dieses auslösen und im Parent-Control dieses Abfangen und das Parent-Control entscheiden lassen, welches Control als nächstes dran ist.

Gruss
Friedel

16.07.2007 - 14:42 Uhr

Hallo,

@herbivore
ich denke Robertico meint, welches Event ausgelöst wurde.

Gehe mal stark davon aus, dass das nicht möglich ist. Was hindert dich daran für jedes Event einen eigenen Handler zu erstellen?

Gruss
Friedel

16.07.2007 - 14:34 Uhr

Hallo pSych0,

mit


object spalte1Zeile1 = grid[0, 0];
object spalte9Zeile1 = grid[0, 8];

kommst du an die Objekte, welche in den Zellen gespeichert sind.

Anm.: ein Grid hat keine Felder, sondern Spalten (Columns) und Zeilen (Rows).

edit: und die Werte stehen in Zellen (Cells)

Gruss
Friedel

13.07.2007 - 10:43 Uhr

Hallo,

ich bin mir nicht sicher (habe mir den Code auch nicht angeschaut), ob der Header nicht gezeichnet wird, es könnte auch ein Bug in VS sein. Zumindest hat dieser mich schon reichlich genervt.

Markier mal das grüne Control, schneide es aus und füge es wieder ein.

Gruss
Friedel

13.07.2007 - 10:10 Uhr

Hallo,

Wenn ich die Liste nicht generisch machen würde, müsste ich jedesmal casten, ...

Das glaube ich nicht, denn du schreibst die Collection ja für deinen Typ PackageInfo. So wie du es bisher hast, lässt du alle Typen zu, begrenzt dann aber alle Typen auf deinen, also kannst du dir das auch sparen.


class PackageInfo
{
  public GUID
  { get {//...}}
}

class PackageInfoList: List<PackageInfo>
{
    public PackageInfo FindItem(Guid GUID)
    {
        foreach (PackageInfo package in this)
        {
            if (package.GUID == GUID) return package;
        }

        return null;
    }
}

Gruss
Friedel

12.07.2007 - 17:19 Uhr

Dann mach sie doch evtl durchsichtig

Gruss
Friedel

12.07.2007 - 14:04 Uhr

Hallo,
sicherlich hat herbivore recht, wenn er meint du solltest es lernen solche Fehler selber zu beheben, aber da ich glaube, du gehst eh schon zu kompliziert an die Sache:


namespace TestForm {
    static class Program {	
		[STAThread]
		static void Main() {
			Application.EnableVisualStyles();
			Application.SetCompatibleTextRenderingDefault(false);			

			Form2 form = new Form2();
			new Form1().ShowDialog();  //die Form, welche eingeblendet werden soll

			Application.Run(form);
		}
	}

    public partial class Form1 : Form {
	Timer timer;

        public Form1() {
	        InitializeComponent();
		this.AllowTransparency = true;

		this.timer = new Timer();
		this.timer.Interval = 1;
		this.timer.Tick += new EventHandler(timer_Tick);

		this.Shown += new EventHandler(Form1_Shown);
		this.Opacity = 0;
        }

	void Form1_Shown(object sender, EventArgs e) {
		this.timer.Start();
	}

	void timer_Tick(object sender, EventArgs e) {
		this.Opacity += 0.003;

		if (this.Opacity == 1) 
			this.Close();
        }
    }
    
    ...
}

Gruss
Friedel

03.07.2007 - 13:45 Uhr

Hallo SamFritz,

oder du schaust mal in einen früheren Thread von herbivore 🙂Newsticker

Gruss
Friedel

02.07.2007 - 11:16 Uhr

Ach ja ...???

Wäre schön gewesen zu erfahren warum es sich erledigt hat.
Hast du deine Lösung?

Gruss
Friedel

02.07.2007 - 08:20 Uhr

Hallo dimuwe,

wie bei eigentlich allen Methoden der Klasse String fasst die Methode Replace den Ursprungs-String nicht an, sondern gibt einen entsprechenden neuen String zurück. D.H. fang die Rückgabe der Methode Replace() in einer neuen, oder der Variablen sz auf.

Gruss
Friedel

27.06.2007 - 15:49 Uhr

Hallo citizen.ron und danke für die Komponente...

Anm.:
Es sollte möglich sein, während der Recorder läuft auch Korrekturen (delete) vornehmen zu können.

Gruss
Friedel

27.06.2007 - 15:37 Uhr

Original von elbak
Ich habe eine Anwendung, bei der alle geöffneten Forms in einer ListBox angezeigt werden.

Alle geöffneten Formen deiner Anwendung, oder alle geöffneten auf dem System ?

Gruss
Friedel

27.06.2007 - 14:57 Uhr

Ups, die Codezeile habe ich falsch verstanden...

Passt schon

Gruss
Friedel

27.06.2007 - 14:02 Uhr

Hallo Robert,

ich würde sagen das ist doppelt gemoppelt.
Lass die Methode weg und mach wie herbivore sagt nur eine Eigenschaft Flaeche und berechne im Rumpf des getters die Fläche.

Gruss
Friedel

//edit: das Setzen der Fläche ist so eine Sache, was ist mit den Maßen der Seiten ??? Die sind dann nämlich nicht mehr korrekt.

27.06.2007 - 14:00 Uhr

Hallo Emilio111,

  • erstell eine Klasse, welche als Eigenschaft einen Pfad und eine Kategorie hat
  • erstell für jedes Dokument eine Instanz dieser Klasse
  • speicher die Instanz in einer Liste (z.B. BindingList<DeineKlasse>)
  • binde die Liste an ein Grid mit zwei Spalten

Gruss
Friedel

27.06.2007 - 13:55 Uhr

Original von mendite... ich stehe auf Klammern ^^

... ich hoffe evtl. andere, welche deinen Code lesen müssen auch 🙂
Zumindest die Klammern um den Sender solltest du trotzdem weg lassen.

Den kompletten Text kannst du einfacher mit textBox.SelectAll() selektieren.

Gruss
Friedel

27.06.2007 - 13:45 Uhr

OFFTOPIC:

Obwohl in diesem Fall nicht nötig, man kann Events deregistrieren:


void textEdit1_TextChanged(object sender, EventArgs e) {
  this.textEdit1.TextChanged -= new EventHandler(textEdit1_TextChanged);
  this.textEdit1.Text = this.textEdit1.Text.ToUpper();	
  this.textEdit1.TextChanged += new EventHandler(textEdit1_TextChanged);
}

Gruss
Friedel

27.06.2007 - 13:11 Uhr

Habe ich noch nie gesehen, will zwar nichts falsches behaupten, aber ich denke so ist nicht möglich.

Gruss
Friedel

27.06.2007 - 11:10 Uhr

Hallo Gepro,

mit


System.Diagnostics.Process.Start("link");

öffnest du den StandardBrowser des Systems.

mit


System.Diagnostics.Process.Start(@"C:\Programme\Mozilla Firefox\firefox.exe", "link");

zum Beispiel Firefox (Pfad je nach Installation)

Gruss
Friedel

27.06.2007 - 11:04 Uhr

Hallo hunter_jm,

einfach den Pfad in Anführungszeichen ("") setzen.

Gruss
Friedel

27.06.2007 - 10:40 Uhr

Hallo Khalid,

im Eigenschaften-Fenster zu der neuen Tabelle gibt es einen Eintrag Schema. Da das entsprechende auswählen und fertig.
Eigeschaften-Fenster anzeigen (F4).

Gruss
Friedel

27.06.2007 - 10:35 Uhr

Hallo tomja,

habe das jetzt nur mal auf die Schnelle im Management Studio probiert und bei mir funktioniert deine Abfrage ohne Probleme, sowohl "Like" als auch "=".

Gruss
Friedel

27.06.2007 - 10:21 Uhr

Hallo Doppelhertz,

nimm, evtl. besser eine klassenglobale boolsche Variable, welche du in der while(drDummie.Read() && !aborted){...} nutzt. Setzt du nun im EventHandler für das btnStop_ClickEvent die Variable auf true, bricht die Schleife ab. Ob du trotzdem die Methode SchreibeHTML() aufrufst ist dir überlassen, aber das ist ja unter deiner Kontrolle. Am Ende der Methode, Artikelsuche() wird der Thread beendet.

Gruss
Friedel

27.06.2007 - 09:52 Uhr

Hallo Lecrell,

sorry, ich verstehe dein Problem nicht. Du wolltest den ProductKey und so wie du geschrieben hast, hast du den ja auch herausgefunden. Was hat das jetzt mit XML zu tun?

Gruss
Friedel