Laden...
Avatar #avatar-3271.jpg
rollerfreak2 myCSharp.de - Member
Software Architekt Dabei seit 14.07.2008 916 Beiträge
Benutzerbeschreibung
Man lernt nie aus...

Forenbeiträge von rollerfreak2 Ingesamt 916 Beiträge

25.11.2008 - 12:23 Uhr

Jo mit den MD5 hast du recht, ist ein Hash.

Zum MS SQL Server Express, ich weis das dass kostenlos ist, brauch halt nur webspace wo ich den drauf machen kann, und ne db anlegen kann.

Aber ich such mal hier im Forum.

THX

25.11.2008 - 10:57 Uhr

Vielen Dank, echt spitze. So kann keiner den Code so schnell zurück transferieren.

Nun noch eine Frage zu einem SQL Server. Gibt es kostenlose Server die man nehmen kann, muss auch nur 10 mb haben, man muss eine sql datenbank drauf spielen können, und einen user anlegen um dann anfragen zu stellen. Bist es sowas frei???

THX!

25.11.2008 - 09:00 Uhr

Naja das mit den Hash hat sich erledigt wenn ich das Passwort MD5 Kodiere, oder irgendeine andere nicht zurück tranfsformierbare Kodierung. Und zur Datenbank nehm ich einfach eine SQL. Dann wie Request darauf, und einfach das eingegebene pw mit md5 kodieren und dann mit dem in der Datenbank vergleichen. Danach noch den Login vergleichen, und dann entweder weiter oder nicht.

Jetzt noch eine Frage am Rande. In Managed Code, wie zum Beipsiel bei c# ist es ja möglich aus einem Assemblie den Code zurück zu bekommen, zwar ohne Variablennamen aber es ist Möglich (Reflector).

Gibt es irgendeine Möglichekit die IntermidateLanguage (IL) so zu verwursteln oder ein Progi über das Assemblie laufen zu lassen so das mann den Code nicht mehr zurück verfolgen kann?

THX

24.11.2008 - 22:38 Uhr

Kurz zur Beschreibung:

Ich habe eine Application welche ich anderen Leuten geben möchte. Es handelt sich da um ca. 100 Leute. Nun möchte ich zum Schutz das so machen, das man sich bevor die appl. aufgeht, ein Login und passwort eingeben muss, dann startet die appl. Wenn login falsch, dann natürlich nicht. Ich weis auch das .NET entwickler die mit dem ildasm umgehen können und den reflactor benutzen können dieses dann leicht knacken können, aber es ist ein kleiner schutz davor, das andere Leute das tool nicht starten können.

Ein weiterer Vorteil ist das ich einfach das entsprechende Login löschen muss, und der User kann das Tool nicht mehr verwenden. Zumindets nicht mit seinem Login.

Jetzt zu meiner Frage. Und zwar wie würdet ihr die Serveranbindung machen. Das heißt würdet ihr dafür eine extra Datenbank aufziehen mit key,login und pw welches md5 verschlüsselt sein kann. Oder würdet ihr einfach ein txt file auf dem Server ablegen, und die Loginform checkt einfach ob das Login und entsprechendes pw sich in dieser Datei befinden. Problem ist das wenn eine clever ist und ein sniffer dahinter hängt, könnte er die URL der Datei raus bekommen die einfach öffnen und hätte ein Login.

Das sind ein paar anregungen, aber ich wollt das erstmal posten, nicht das ich anfange, und dann stell ich fest das es das schon fertige Sachen gibt (Die gibt es mit Sicherheit)...

Danke im Voraus...

24.11.2008 - 21:26 Uhr

Die Beschreibung hier ist super und funktioniert auch einwandfrei. Ich hab zwar bisschen gefummelt aber es läuft jetzt. Wichtig ist das wenn man das *.vsproj so bearbeitet das man bei den externen assemblys local copy auf true stellt, anders kann der merger irgendwie nicht abeiten. Dann kompiliert er alle Assembly's in die exe mit rein. Und es läuft wie gehabt.

24.11.2008 - 14:13 Uhr

Es gibt zwei Methoden dieses zu tun bzw. genauer gesagt gibt es zwei Sachen zu beachten. Will man bestehende dll's zusammen mergen dann ist dieser Beitrag sehr gut geeignet.

Will man in einem bestehenden Projekt alle externen Referencen mit in das Assembly rein komilieren, muss man (VS2005 oder VS2008) die Compiler Einstellungen entsprechend anpassen.

Ein guter Beitrag dazu finden Sie hier

24.11.2008 - 14:01 Uhr

Ok vielen Dank. Ich werd gleich mal suchen und dann die links hier posten.

Zwecks Sinn und Unsinn...Bei größeren Projekten mit Sicherheit, nur ist das eine kleine Anwendung, die man dann besser verteilen kann ohne immer alles zu zippen...

24.11.2008 - 12:41 Uhr

Ich hab mal eine Grundetzliche Frage. Und zwar nutze ich Visual Studio 2008 und hab ein Programm geschrieben das 2 externe dll's (der sourcecode ist vorhanden) einbindet und sie auch benutzt. Wenn ich jetzt die Solution als release Version kompiliere dann kommen die 2 dll's raus, und auch eine exe, das Programm selber. Jetzt wollt ich wissen ob es möglich ist die dll's mit in die exe zu kompilieren, damit ich nur eine exe hab, sprich eine Datei und nicht 3.

Gibt es da eine Möglichkeit?

21.11.2008 - 12:14 Uhr

Ich denke ich habe es hin bekommen. Man muss sich einfach merken wenn man mal einen tooltip angezeigt hat. Dann wenn man den neuen Tooltip erst anzeigen wenn die Zeit abgelaufen ist die der alte eingeblendet sein sollte, beziehungsweise wenn sich das Subitem geändert hat. Bisschen aufwendig aber es funktioniert.

20.11.2008 - 21:08 Uhr

Ich brauch die sache mit dem richtigen anzeigen des Tooltips. Wie geht das einfacher als sich eine statemachine zu bauen und immer zu checken ob der Tooltip schon an ist.

20.11.2008 - 20:50 Uhr

Es ist ein Listview und kein Treeview. ABer habs jetzt so gemacht.


void lv_Auswertung_MouseMove(object sender, MouseEventArgs e)
{
   for (int i = 0; i < lv_Auswertung.Items.Count; i++)
   {
      for (int j = 0; j < lv_Auswertung.Items[i].SubItems.Count; j++)
      {
         if (IsInRectangle(lv_Auswertung.Items[i].SubItems[j].Bounds,e.X, e.Y))
         {
            //if (i == 2 && j == 2)
            // MessageBox.Show("2,2";);
            ToolTip myTT = new ToolTip();
            myTT.Show(lv_Auswertung.Items[i].SubItems[j].Text, lv_Auswertung,e.X, e.Y);
            //aber wie genau?????
         }
      }
   }
}

private bool IsInRectangle(Rectangle r, int x, int y)
{
   if (x > r.X && y > r.Y && x < r.X + r.Width && y < r.Y + r.Height)
      return true;

   return false;
}


Jetzt hab ich aber das PRoblem den Tooltip ordentlich anzuzeigen. Irgendwie funzt das net richtig...!

20.11.2008 - 20:25 Uhr

Ja das ist schade. Ich würde ja das alles in der ItemMouseHover methode machen, nur bekomm ich dort leider keine relative Mausposition. Wo würdest du das implementieren?

20.11.2008 - 20:03 Uhr

Ich denke so ca. 40 in 4 Groupboxen die ihre Position mit anchor eigentschaft haben.

20.11.2008 - 15:56 Uhr

Es gibt ja in einem Listview die Möglichkeit sich an das ItemMouseHover Event anzumelden. Fährt die maus dann über ein ListViewItem kommt das Event.
Gibt es eine einfache methode das man dann auch das Subitem auf dem die Maus sich befindet heraus bekommt, also sowas sie SubItemMouseOver oder muss man sich das ListView nehmen und sowas selber implementieren?

THX!

20.11.2008 - 13:56 Uhr

Also eine Lösung finde ich nicht. Oder ich bin zu blöde die zu implementieren. Setze ich zum Beispiel:


protected override void OnResize(EventArgs e)
        {
            this.SuspendLayout();
            base.OnResize(e);
            this.ResumeLayout();
        }

Das functioniert nicht.Flackert imme noch.


protected override void OnResizeBegin(EventArgs e)
        {
            this.SuspendLayout();
            base.OnResizeBegin(e);
        }


        protected override void OnResizeEnd(EventArgs e)
        {
            base.OnResizeEnd(e);
            this.ResumeLayout();
        }

Das hat einfach nur zur folge das erst neu gezeichnet wird wenn man die Resize Operation abgeschlossen hat, sprich die Maus los lässt. Das will ich aber nicht. Ich möchte das on_demand diese scheiße Form gezeichnet wird ohne das Flackern.

Aber ich glaub ich bin zu blöde mit dieser Grafiksache um zu gehen. Mit Daten kann ich das glaub ich besser.

20.11.2008 - 13:32 Uhr

Also ich hatte mir die ganze Zeit schon gedacht das wir aneinander vorbei reden.

Noch mal zum Grundproblem. Ich sagte das ich eine Form habe, welche viele Controls enthält die Ihre größe mit hilfe von SplitContainern, und Anchor Eigenschaften dynamisch ändern, sobald sich die größe der Ihr umgebenden Form ändernt. Nun ist es so das ich ein dualcore habe, und es ja nicht sein kann das wenn ich keinerlei Funtkion in den Controls habe, sondern einfach nur die Größe der Ihr umgebenden Form ändere, ich zu schauen kann wie sich jedes Control "übertrieben in Zeitlupe" an die Form anpasst. ICh meine das ist doch ein Problem des Frameworks an sich. Und nun wollt ich einfach wissen wie man diesen Vorgang, an dem ich übrigens nix selber mache, da die anchor ja eigenständig arbeiten, beschleunigen kann, sodass man nicht mehr sieht wie sich jedes Control einzeln an die neue "Umegebung" anpasst...!

20.11.2008 - 13:21 Uhr

Also ich glaub ich habe die ganze Sache noch nicht richtig verstanden!

Noch mal zum Verständnis. Ein szenario ist man hat eine Form mit einer Groupbox die viele Sachen enthält. Jetzt hab ich den verlinkten Artikel so verstanden, das man bevor mal die Groupbox füllt, SuspendLayout() aufruft, dann seine ganzen

 this.groupbox1.Controls.Add(new ....);

macht und dann ResumeLayout aufruft. Aber das Befüllen an sich macht man doch nur einmal, sprich im InitializeComponent() des Designers.

Danach befüllt man doch nix mehr. Wo muss ich jetzt genau anfassen um beim verschieben bzw. vergrößern der Form das langsame anpassen aller Controls die sich innerhalb der Groupbox befinden zu verhindern. ANscheinend reicht das in InitializeComponent() ja nicht.

20.11.2008 - 13:11 Uhr

Was meinst du damit ich muss das dort einbauen wo ich ein resize erwarte? Es soll ja auch keiner für mich machen, aber es hätte ja sein können das es schon ein Beispiel zu sowas gibt.

20.11.2008 - 13:09 Uhr

Kurze resume. Dockstylefill stimmt natürlich nicht, sondern ich meine Anchor.
Also so das der links oben left und top hat, der rechts unten rigth und buttom usw.
Und wenn man das noch weiterspielt kann man in die Groupboxes jetzt wieder Controls einbauen die so angeordnet sind, dann wird die sache nämlich sehr langsam...!

20.11.2008 - 12:59 Uhr

Also wegen den Abteitungen ist jetzt geklärt, per Reflaction geht das ja ziemlich gut.

Nur das Problem der Langsam bzw. hängenden Form habe ich trotzdem noch. Ich arbeite mit VS2008 und dem Designer weils damit einfach schneller geht Forms zu erstellen. Jetzt wollt ich das mit dem SuspendLayout und ResumeLayout mal ausprobieren und hab gemerkt das dass der Designer schon von alleine macht. Sprich am Anfang macht er immer ein SuspendLayout, dann initialisiert er die Controls (Groupboxes, Panels, SlidePanels, etc) und dann macht er auf alle Controls die Controls Adden wieder ein ResumeLayout, also quasi das was ihr im Punkt eins beschrieben habt um die Form schneller zu machen.

Problem nur ist, das bringt alles nix. Wenn ich im releasemode die Form starte und auf Maximize Box gehe, dann baut sich das Fenster langsam auf, die Controls passen sich LANGSAM an die größe der Form an, und es bleiben sogar manchmal schwarze Ränder. Diese verschinden allerdings beim neu zeichnen.

Kann es sein das der designer das doch nicht selber macht, mit dem Suspend und resume und ich das falsch interpretiert hab. Es sah zumindest für mich so aus.

Ein kleines Beispiel mit einer From und 4 Groupboxes die DockStyle.fill haben, und das richitge resume und supend aufrufen wäre recht hilfreich!

THX!

19.11.2008 - 22:05 Uhr

Versteh ich das jetzt richtig. Ich muss jedes Control ableiten, nur um die Methode die protected ist, public zu machen bzw. private aber von außen erreichbar. Wieso gibt es dieses doublebuffered wenn dem user nicht die möglichkeit gegeben wird diese zu setzen?

19.11.2008 - 20:54 Uhr

Ich habe trotzdem noch eine Frage 🙂

Und zwar ich habe jetzt eine Form die mehrere Controls enthält, z.B Groupboxes, Panels, Listviews etc.
Nun wollte ich via


this.listview1.SetStyle(System.Windows.Forms.ControlStyles.OptimizedDoubleBuffer, true);

mal testen ob das was bringt. Leider ist die methode SetStyle protected und ich komm da nicht ran. Was mache ich falsch?

19.11.2008 - 19:54 Uhr

Vielen Dank Ihr beiden.
Hat mir sehr geholfen, einfach spitze eurer Forum.

many thx

19.11.2008 - 16:48 Uhr
  1. Wenn man ein Form hat die in sich mehrere Controls beinhaltet, und man macht die Form doublebuffered, werden dann alle Inhalte doublebuffered gezeichnet?

  2. Performance Problem. Wenn man eine Form hat, in dieser hat man Beispielsweise 4 Groupboxes die als Dockstyle Fill haben, und mann ändert die Größe der Form, dann passen sich die Groupboxes sehr langsam an, wenn man die Form z.b. Maximiert dann ist das bei mir ziemlich langsam. Was kann man dagegen machen, p.s. im Release Mode ist es genauso langsam.

thx

18.11.2008 - 15:03 Uhr

Das sah für mich etwas anders aus. Aber ist geklärt. Thx

18.11.2008 - 14:14 Uhr

@herbivore

Diesen Post hättest du dir auch sparen können, hat ja JAck30lena schließlich schon geschrieben!

Zur genauen Beschreibung. Wenn man sich die Klassen anschaut besteht das Teil aus "internal partial class Office2007ColorPlate". Warum macht man so eine klasse internal?

So nun hab ich mir den SourceCode besorgt, und ihn übersetzt. Dann hab ich einfach eine neue Form erstellt und wollt dort in einem Panel z.b. mal so den Office2007ColorPlate darstellen.

Hab das jetzt auch hinbekommen. Meine Problembeschreibung war quasi nicht vorhanden, und das war blöd. Aber das 2te Kommentar von herbivore war auch nicht besser...!

18.11.2008 - 10:48 Uhr

Hab hier mal was gefunden, aber orgendwie bekomm ich das nicht in eine Form eingebaut wenn ich die dll als Reference her nehmne. Hier mal die URL.

Wollt einfach die Colorpalette in einer Form öffnen so das ich mir einen eigenen ColorDialog bauen kann. Aber bekomm das nicht hin...! Kann mir einer helfen?

14.11.2008 - 14:10 Uhr

Irgendwie war das ein anderes Problem. Normalerweise ist ein Invalidate nämlich ein löschen der zeichenfläche und dann ENEUTES zeichnen.
Hab da was durcheinander gebracht. geht jetzt aber.

thx

14.11.2008 - 14:01 Uhr

Ich hab eine Funktion z.b. ein abgerundetes Rechteck zeichnet.


public void DrawRoundRect(Graphics g, Pen p, Brush b, float X, float Y, float width, float height, float radius)
        {

            GraphicsPath gp = new GraphicsPath();
            g.DrawPath(p, gp);
            gp.AddLine(X + radius, Y, X + width - (radius * 2), Y);
            gp.AddArc(X + width - (radius * 2), Y, radius * 2, radius * 2, 270, 90);
            gp.AddLine(X + width, Y + radius, X + width, Y + height - (radius * 2));
            gp.AddArc(X + width - (radius * 2), Y + height - (radius * 2), radius * 2, radius * 2, 0, 90);
            gp.AddLine(X + width - (radius * 2), Y + height, X + radius, Y + height);
            gp.AddArc(X, Y + height - (radius * 2), radius * 2, radius * 2, 90, 90);
            gp.AddLine(X, Y + height - (radius * 2), X, Y + radius);
            gp.AddArc(X, Y, radius * 2, radius * 2, 180, 90);
            g.FillPath(b, gp);

            gp.CloseFigure();

            g.DrawPath(p, gp);
            gp.Dispose();
        }

Und rufe diese in einem OnPaint einer Form auf wie hier.


        protected override void OnPaint(PaintEventArgs e)
        {
            base.OnPaint(e);
            //this.BackColor = Color.LightGray;
                DrawRoundRect(e.Graphics, new Pen(Color.Black), new SolidBrush(Color.FromArgb(200, Color.White)), 10, 10, ClientRectangle.Width - 20, ClientRectangle.Height - 20, 50);
            }
        }

Wenn ich nun die größe der From ändere sollte sich ja auch das rechteck änder, tut es auch. Nur die alten werden immer noch gezeichnet. Wie kann ich das verhindern, bzw. wie lösche ich den Zeicheninhalt bzw. den Puffer im OnPaint sodass immer nur ein Rechteck gezeichnet wird?

thx

14.11.2008 - 12:45 Uhr

Ich kloppi, jetzt hab ichs. Ich musste natürlich auch den Focus setzen nicht nur das Panel focusfähig machen 🙂

ein panel.focus() hat gereicht...

14.11.2008 - 12:17 Uhr

Der Code liegt auf der Seite die ich oben angegeben habe.
Jetzt nimmst du dir die Klasse PieChartControl.cs vor.

Dort machst du einfach einen


protected override void OnMouseClick(MouseEventArgs e)
        {
            base.OnMouseClick(e);
            MessageBox.Show("click");
        }

dann state die testapplication ckick in das Panel und die Messagebox erscheint.

Dann versauch das Mausrad zu überschreiben mit.


protected override void OnMouseWheel(MouseEventArgs e)
        {
            MessageBox.Show("wheel");
            base.OnMouseWheel(e);
        }

Vorher kannst du noch im click event das hier machen um den focus auch wirklich zu setzen.


            this.SetStyle(ControlStyles.Selectable, true);

Und es geht bei mir trotzdem nicht. Ich versteh nicht warum...
Es muss doch möglich sein im Panel an das event zu kommen...

14.11.2008 - 11:19 Uhr

wie meinst du das? Wie neu setzen. Ich überschriebe ja nur das Event, das anmelden macht das Panel doch selber!

Und wie gesagt am Focus dachte ich liegt es, sprich das Event kommt vielleicht, aber da das Panel keinen Focus hat erreicht es das Panel und den dazugehörigen Handler nicht.


this.SetStyle(ControlStyles.Selectable, true); 

Das hilft aber nicht...!

Was soll ich tun?

14.11.2008 - 11:10 Uhr

Ich habe mir das PieChart von dieser Seite dieser Seite mal geladen und wollt bisschen was probieren. Das klappt auch alles ganz wunderbar, bis auf eine Sache. Wenn ich in der Klasse PieChartControll das Event OnMouseWheel überschreibe und dann im Panel die Mause positioniere und dann das Mausrad bewege passiert nix. Der Handler spirngt nicht an. Kann es sein das er kein Focus hat, aber die anderen Events gehen ja auch, mouseclick, mouseenter etc....!

ps.: Das Panel damit zu initialisieren


this.SetStyle(ControlStyles.Selectable, true); 

hilft nicht...

Kann mir einer helfen!

12.11.2008 - 12:29 Uhr

Habs gefunden. Das hätten die aber im Studio bisschen benutzer Freundlicher machen können. Aber jetzt funzt es.

many thanks

12.11.2008 - 10:21 Uhr

Die Picturebox diente nur dazu das Bild zu strechen, also wenns nur in 2424 vorliegt es auf 1616 zu rendern. Aber ich habs jetzt einfach eingenständig konvertiert, auf meine größe und dann in den Button geschoben.

Eine Frage habe ich trotzdem noch. Ich lade im moment alle icons aus einem pfad heraus. Wenn ich das programm im release mode compiliere, und ich will das die icons in der exe mit eingebunden werden, was muss ich dafür tun?
Sprich wie bekomm ich die icons dort rein, bzw. wo stelle ich ein das die beim builden dort rein geschoben werden. Und wenn ich das habe dann kann ich die ja in der applikation selber nicht mehr mit dem pfad laden...!

Ich nutzte .net framework 2.0 und Visual studio 2005.

Danke schon mal jetzt für deine Hilfe 🙂

12.11.2008 - 09:45 Uhr

Ein kleines Problem gibt es noch. In der Picturebox kann ich das Icon dann strechen wie ich will, spirch auf meine Dimension anpassen, wenn ich das icon aber mit dem ctor auf eine bestimmt dimension haben möchte z.b. Icon i = new Icon("notiz.ico", 16, 16) dann nimmt der die kleinste Auflösung die sich im Icon befindet also 24,24. Wie kann ich das umgehen? Weil die picturebox kann ich ja nicht in den Button schieben?

12.11.2008 - 09:35 Uhr

Vielen Dank, das geht. Hätte mir den ctor der Icon Klasse gleich mal richtig angucken sollen 🙂

12.11.2008 - 09:32 Uhr

Ich hab eine Möglichkeit gefunden wie ich es auf einer Picturebox mache.


pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
pictureBox1.Size = new System.Drawing.Size(16, 16);
Icon i = Icon.ExtractAssociatedIcon("main.ico");
pictureBox1.Image = i.ToBitmap();

Nun wird das Icon genau so groß gezeichnet wie die Size der Picturebox, und auch die Transparenz stimmt noch. Aber wie bekomm ich die Picturebox in einen Button rein?

12.11.2008 - 08:59 Uhr

Ich hab ein Icon (multi size) das heißt im icon selber sind mehrere Größen enthalten (wahrscheinlich ebenen) und jetzt möchte ich das Teil in ein Button positionieren. Leider nimmt der keine Icons. Jetzt gibt es zwei Möglichkeiten.
Entweder es gibt doch eine Möglichkeit eine Icon dort rein zu bringen, oder ich wandle das icon in ein gif, leider bekomm ich das nicht verlustfrei hin. Kennt einer von euch ein Tool das icon -> gif wandelt, oder einen weg wie man das icon direkt in den Button bekommt.

Vielen Dank im voraus.

11.11.2008 - 16:07 Uhr

Das hab ich mir schon fast gedacht...!

11.11.2008 - 11:12 Uhr

Im .Net Framework 2.0 gibt es ja das MonthCalendary Control welches sehr schöne Funktionen mit sich bringt. Nur eins hab ich bis jetzt noch nicht gefunden. Ich möchte die Hintergrundfarbe einzelner Tage variabel gestalten, sprich jeden Tag eine eigene Hintergrundfarbe geben. Leider hab ich keinen weg gefunden das mit dem Control hin zu bekommen. Ich weis auch nicht welche methode ich überschrieben sollte um das manuell zu erledigen.

Hat einer einen Tip für mich?

thx

18.10.2008 - 13:20 Uhr

ich habs hinbekommen. Habs jetzt auch verstanden. Danke für deine Hilfe mit dem Frameset.

18.10.2008 - 13:06 Uhr

Naja das versteh ich halt nicht. Ich möchte die Tabelle die sich dort drin befindet haben. Wenn ich das mit dem Browser lade geht es ja auch, vermutlich weil das Frame den Content lädt. Ich möchte an den Content ran. Hast du eine Idee wie ich das mache?

18.10.2008 - 11:12 Uhr

Ich hab mal ne kleine Frage bezüglich eines WebRequest's. Ich möchte automatisiert etwas vom netz auslesen, und eine datenbank befüllen. Dazu hab ich folgendes codefragment benutzt


HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(this.textBox2.Text); 
            
            // falls der server benötigt, setzt man die Beglaubigung.
            myRequest.Credentials = CredentialCache.DefaultCredentials;
            try
            {
                // die antwort holen
                WebResponse response = myRequest.GetResponse();

                // den status ausgeben
                this.textBox1.Text = ((HttpWebResponse)response).StatusDescription + System.Environment.NewLine;
                
                // den korrekten stream laden
                Stream dataStream = response.GetResponseStream();
                // stream via streamreader laden
                StreamReader reader = new StreamReader(dataStream);
                // den Inhalt lesen
                string responseFromServer = reader.ReadToEnd();
                // den inhalt darstellen
                textBox1.Text += responseFromServer;
                // streams schließen
                reader.Close();
                response.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }



Ihr könnt zum testen natürlich auch auf einer Konsole ausgeben. Wenn ich jetzt irgendeine URL eingebe, z.b. http://www.google.de bekomm ich eine response und auch die Daten der response. Bedeutet kopier ich den html code dann in ein file, öffne das mit dem browser kommt das selbe raus wie sowieso im browser angezeigt wird, war ja auch zu erwarten. aber jetzt wollt ich ein htm file auslesen, welches im brwoser richtig angezeigt wird aber in diesem c# code nicht. Das versteh ich nicht. die url ist http://www.skatfreunde.de/soturniere/listen/turnier2008/RT081015Serie1.htm.

Kann mir das einer erklären?

22.07.2008 - 15:02 Uhr

Also ich poste mal ein bisschen code vielleicht ist es dann verständlicher.
Hier unten ein Projekt im VS2005. Kannst ja einfach mal debuggen und versuchen folgendes Nachzuvollziehen.

Wenn man die Nodes des Treeviews klickt dann funzt alles wunderbar, sprich man hat im entsprechenden Handler auch alle nodes im Tree vorhanden. Wenn man nun den Button der sich ebenfalls auf der SELBEN seite befindet, und man gelangt in den Handler, das ist der Treeview leer, sprich die Instanz am Server die vorher richtig geladen war, ist nun nicht weg, aber leer.

Und das ist das komische, sprich wenn man den Button klickt, wird der Tree serverseitig neu initialiersiert, ich geh zumindest davon aus, nur anhand der Tatsache das er leer ist, werden wahrscheinlich die werte des treeviews nicht mitgeschickt.

21.07.2008 - 21:15 Uhr

Zur deiner letzen Frage:

  • codieren von Anforderungsparameter als name-and-value Paare
  • GET: fügt die Abfrage-Zeichenfolge zu der URL des Skripts auf dem Server, der die Anforderung verarbeitet, an
  • POST: Das Protokoll übergibt die name-and-value Paar in dem HTTP-Anforderungsnachrichtentext

So grob der Unterschied.

Zweitens mal zu deinen Posts. Manche kannst du die echt sparen, sowas schreibt man nicht in Foren in denen Leute Hilfe suchen...!Wenn ich die Fehler kennen würde, würde ich Sie auch nicht posten. Vertsehst du das?

Die Fehler sind selbsterklärend.
Auch der letzte. Du musst dich damit befassen.

Zum anderen hast du grad das erstemal behauptet das du mein Problem nicht verstehst, dann sag mir doch was du daran nicht verstehst.

Also noch mal, weil ich nicht glaub das es am get bzw post liegt. ICh führe einmal Databind aus. Dann sind im Treeview OBJECT alle Nodes bzw. Childnodes enthalten. Klicke ich auf ein Link des Tree's und lande zum Beispiel im dazugehörigen Handler (treeNodeChange) dann ist das Object des Treeviews immer noch mit den Nodes gefüllt. Nur Wenn ich jetzt zum Beispiel ein Button auf der Seite habe, und diesen Betätige, und im dazugehörigen Handler lande, dann ist meine Instanz des Tree's zwar noch da, aber die Nodes sind alle leer. Das ist das Problem. Wieso sind die jetzt leer, das heißt wieso werden die Informationen über den Tree nicht auch hier mit zum Server gesendet?????

Kanns du mir vielleicht jetzt besser helfen...?

21.07.2008 - 17:26 Uhr

Du bist witzig, zum einen Behauptest du das du recht hast, und kannst mir aber nicht sagen wo ich beim Treeview sagen kann das die Links mit POST gemacht werden sollen. Zum anderen (du behauptest ja das es mit GET und POST des Treeviews zu tun hat) kannst du mir mal erklären warum wenn die Links mit POST ausgeführt würden, und ich nur einen BUTTON auf dieser Seite drücke, der Server die kompletten infos über den tree erhält und ohne POST der Tree LEER ist. Das ergibt nämlich NULL Sinn für mich...

21.07.2008 - 17:19 Uhr

Was wars ist gut. Hab das ganze Controll geändert, überschrieben und angepasst. Ist deutlich zu viel um das hier im Forum zu posten...

ps: Beschäftige dich doch einfach mal damit... 🙂

21.07.2008 - 10:52 Uhr

Thread ist gelöst, hab mir die nacht um die Ohren geschlagen und habs jetzt hin bekommen. Könnt ihr schließen.

21.07.2008 - 10:51 Uhr

@Peter Bucher

Ich habe das Gefühl das du dir die threads nicht richtig durch liest. Dann hättest du nämlich nicht so eine Antwort gegeben. Ich wollte ja nur wissen warum bei einem Button event der Inhalt des aktuellen Trees nicht mit gesendet wird, und du redest über GET und POST des Tree's. Das hat doch gar nichts damit zu tun...! Weil ich klicke ja diesem Moment nicht auf den Tree. Wenn ich auf den Tree klicke dann geht ja alles, egal ob GET und POST....