Laden...

Forenbeiträge von Kalleberlin Ingesamt 165 Beiträge

23.01.2008 - 21:59 Uhr

Mhh das ist vielleicht in diesem Fall so, aber normalerweise sind das Html-Tags (B = fett, A = link).

Gruss Kalleberlin.

23.01.2008 - 21:52 Uhr

Hi Karsten_88

ich hatte gerade Langeweile 😁


private String getTranslation(String searchWord, String text)
        {
            StringBuilder sb = new StringBuilder();
            string[] textSplit = text.Split('=');
            for(int i= 0; i < textSplit.Length;i++)
            {
                if (textSplit[i].Contains("search")) 
                {
                    i++;
                    string str = Regex.Replace(textSplit[i], @"[^\w\.@-]", ";");
                    String[] temp = str.Split(';');
                    if (!temp[0].ToLower().Equals(searchWord.ToLower()))
                        sb.AppendLine(temp[0]);
                }
                
            }
            return sb.ToString();
        }

Nachteil an dieser Variante ist leider, das deutsche Wörter auch als Treffer gelten.
Kann man ja noch optimieren 😜

Gruß Kalleberlin

23.01.2008 - 14:35 Uhr

Hallo thepixel,


int count = 0;

sr.ReadLine();
count++;

Ganz einfach 😜

Gruß Kalleberlin

21.01.2008 - 15:28 Uhr

Mhh also ich habe teilweise sogar noch mehr zeilen, bei mir geht das tadellos 🤔

21.01.2008 - 15:10 Uhr

Hallo Juy Juka,

ersteinmal danke für deine Mühen mit dem Diagramm 🙂.

Aber ich werde nicht so recht schlau aus

"Dann überschreibst du noch ToString() und Equals() und gut ist."

Was genau meinst du damit?

Gruß Kalleberlin

21.01.2008 - 15:08 Uhr

Hallo el_panter,

als ich das benutzt habe, bin ich davon ausgegangen das der Inhalt beider rtb's genauso viele Zeilen hat.

Ich denke mal das das bei dir nich so ist.

Versuch mal die ScrollPos nur zu setzen wenn LINEUP oder LINEDOWN zutrifft.

Mehr fällt mir gerade nicht ein 😜

21.01.2008 - 00:25 Uhr

Hallo Ihr 🙂

Ich bin grad ein wenig am verzweifeln, weil mir einfach keine Lösung einfallen will.

Mal mein Problem:

Vorweg, alle gegenstaende sind Strings, aber das sollte nicht so wichtig sein 🙂.

Ich habe N-Gegentstaende die in eine listbox sollen. Zu diesen N-Gegenstaenden, gibt es N-Items(1). Und zu diesen N-Items(1) gibt es exakt genausoviele N-Items(2).

Soweit die Theorie.

Die Bedingungen:

Die N-Gegenstände können beliebig of "eintreffen", sollen aber nur einmal in der Listbox auftreten. Wenn dieser N'te gegenstand eintrifft - und bereits existiert, soll er in einer 2ten listbox als "sub gegenstand" auftreten. Und dieser "sub gegenstand" hat dann auf die beiden N-Items zugriff.

Mal eine kleine "zeichung" um mein knoten im Kopf zu verdeutlichen 😁

Ng = N-Gegenstand
NgSub(n) = N-SubGegenstand
I(n) = Item

Ng0|Ng(0)Sub0|Ng(0)Sub(0)I0|Ng(0)Sub(0)I_2_0
Ng1|Ng(0)Sub1|Ng(0)Sub(0)I1|Ng(0)Sub(0)I_2_1
Ng2|Ng(0)Sub2|Ng(0)Sub(0)I2|Ng(0)Sub(0)I_2_2
...

Ng(0)Sub(0)I_2_0 wäre z.B das zweite exakte N-item

Hoffe ihr versteht was ich meine, bzw will 😁

Ich hab es schon auf mehre arten Versucht zu lösen (Stichwort Diconarys,List<> etc)

Aber dieses ganze Konstrukt hinterlässt einfach ein knoten in meinem Kopf, ich hoffe ihr könnt mir ein wenig helfen wie ich das umgesetzt bekomme 🙂

Gruß Kalleberlin (der jetzt kopfschmerzen hat ^^)

20.01.2008 - 15:33 Uhr

Beschreibung:

Also kurz und knapp:
Ich hatte jetzt das Problem 2 Rtb`s synchron scrollen zu lassen. Nach langem lesen im Internet hab ich jetzt eine lösung "ausgearbeitet" die mir persönlich sehr gut gefällt und ich diese euch nicht vorenthalten wollte 🙂.

Vielleicht kanns ja jemand gebrauchen 🙂.


using System.Runtime.InteropServices;
....
        #region globals
        private const int WM_VSCROLL = 277; // Vertikal Scroll
        private const int SB_LINEUP = 0; // Scrollt eine zeile hoch
        private const int SB_LINEDOWN = 1; // Scrollt eine zeile runter
        #endregion

        #region dllImport
        [DllImport("user32.dll", CharSet = CharSet.Auto)]
        private static extern int SendMessage(IntPtr hWnd, int wMsg, IntPtr wParam, IntPtr lParam);
        [DllImport("User32.dll")]
        public extern static int GetScrollPos(IntPtr hWnd, int nBar);
        [DllImport("User32.dll")]
        public extern static int SetScrollPos(IntPtr hWnd, int nBar,int nPos, bool bReddraw);
        #endregion
        #region event
        void richTextBox1_VScroll(object sender, System.EventArgs e)
        {
            int scrollPosRtb1 = GetScrollPos(richTextBox1.Handle, 1);
            int scrollPosRtb2 = GetScrollPos(richTextBox2.Handle, 1);
            if (scrollPosRtb1 == scrollPosRtb2)
            {
                return;
            }
            if (scrollPosRtb1 > scrollPosRtb2)
            {
                SendMessage(richTextBox2.Handle, WM_VSCROLL, (IntPtr)SB_LINEDOWN, IntPtr.Zero);
            }
            else
            {
                SendMessage(richTextBox2.Handle, WM_VSCROLL, (IntPtr)SB_LINEUP, IntPtr.Zero);
            }

            SetScrollPos(richTextBox2.Handle, 1, scrollPosRtb1, true);

        }
        #endregion

//Edit:
Es hatte doch noch nicht 100%ig funktioniert. Sollte es jetzt aber tun 😜

Schlagwörter: richtextbox, scroll, synchron,vscroll

16.01.2008 - 10:49 Uhr

@juetho:
Zum Zeitpunkt als ich meine Antwort schrieb hab ich deine Antwort noch nicht gelesen.

@herbivore
Bei mir hats bis jetzt immer so funktioniert. Aber ich kanns mir in Zukunft auch klemmen hier zu Antworten, da es ja eh unpassend ist 😛. Können ja nicht alle so fit sein wie Du.

16.01.2008 - 10:17 Uhr

Wenn Du mit dem Designer arbeitest, einfach deine Form doppelt klicken. In die erzeugte Methode einfach


this.Focus();

schreiben. Die standard exeption natürlich rausnehmen^^.

16.01.2008 - 10:01 Uhr

Mhh wenn Du auf deine Form klickst, sollte der Cursor eigentlich raus sein. Du kannst ja in dein Form-Click-Event nochmal explizit deiner Form den Focus geben.

14.01.2008 - 22:03 Uhr

Hallo herbivore,

an TopMost hab ich natürlich nicht mehr gedacht 🤔.

Danke Dir 👅

14.01.2008 - 21:58 Uhr

Hallo Ihr 🙂

Ich habe im moment ein kleines Problem mit der Z-order meiner Win-Forms.

Beim start meiner kleinen Applikation, prüfe ich ob es schon eine Konfigurations-Datei gibt. Wenn das nicht der Fall sein sollte (was beim ersten start so ist), soll er eine kleine Maske anzeigen, mithilfe derer ich dann die Konfiguration speichere.

Soweit so gut.

Meine Hauptform ist zu diesem Zeitpunkt schon sichtbar und ich erstelle meine Maske einfach so:


        #region initApp()
        private void initApp()
        {
            if (!File.Exists(configPath))
            {
                configFileFrm cff = new configFileFrm();
                cff.StartPosition = FormStartPosition.CenterScreen;
                cff.Show();
                cff.BringToFront();
                this.SendToBack();
            }
            else
            {
                ///TODO: read config file.
            }
        }
        #endregion

Ich hab es erst mit nur mit "BringToFront()" versucht, gint nicht. Nun auch noch mit "this.SendToBack()", mit demselben Ergebnis. Meine Maske bleibt immer im Hintergrund. Die Funktion selbst rufe ich im Konstruktor meine Hauptform auf, ganz zum schluss.

Hoffe Ihr könnt mir da helfen 🙂

Gruss,
Kalleberlin

13.01.2008 - 19:09 Uhr

Dann musst Du dich dann da anmelden.

Solltest Du das nicht können, warum auch immer, sehe ich keine Möglichkeit an den Quellcode zu kommen.

11.01.2008 - 19:32 Uhr

Upps, direkt überlesen X(.

Sorry

11.01.2008 - 18:03 Uhr

Dann verstehe ich dein Problem nicht 🙂.

Du hast doch bereits alles was Du brauchst gesagt bekommen.

Nimm dir den Link der direkt zu dem Post geht, z.b der Link zu dem hier, sieht der so aus:

htp:/www.mycsharp.de/wbb2/thread.php?threadid=49413

Lade Dir dann die Seite runter, damit hättest du dann den Quellcode. jetzt musst du diesen nur noch nach links durchsuchen ala <href....

und schon hast du deine links.

Gruss Kalleberlin

11.01.2008 - 17:58 Uhr

Hallo steffen_doc,

vielleicht hilft Die das hier ja weiter 😜

11.01.2008 - 16:19 Uhr

Mhh, also wenn ich Dich richtig verstehe, willst Du nichts weiter als aus irgendeinem forum, in irgendeinem post, irgendwelche links rausfiltern, ohne dich einloggen zu müssen?

11.01.2008 - 12:06 Uhr

Wenn Du den link bereits kennst, warum lädst Du dir die datei nicht einfach runter?

Die Antwort gibt es ja schon in deinem Anderen post "URL auslesen aus einem Forum".

  
HttpWebRequest httpWebRequest = (HttpWebRequest)HttpWebRequest.Create(url);  
httpWebRequest.UserAgent = userAgent;  
WebRequest webRequest = (WebRequest)httpWebRequest;  
WebResponse webResponse = webRequest.GetResponse();  
StreamReader sr = new StreamReader(webResponse.GetResponseStream());  
string html = sr.ReadToEnd();  
  
10.01.2008 - 21:28 Uhr

*reinschleich*
Interessantes Thema 🙂
*rausschleich*

10.01.2008 - 20:30 Uhr

Das klappt so nicht mal mit diesem Forum, war dafür auch nie gedacht 🙂.

userName und password sind zwei String Variablen. Du musst das natürlich auf deine Verhältnisse anpassen.

Nur per Copy paste war das ja auch nicht gedacht ^^. Wie gesagt, wenn Du was wissen möchtest, frag halt 🙂

10.01.2008 - 16:43 Uhr

Falls Du zugriff auf die Datenbank von diesem Forum hast, kannst Du dir die Daten auch direkt aus der Datenbank ziehen.

Falls Dir das zu schwer erscheint, Du kannst dich natürlich auch einloggen. Ich hab mich kürzlich auch einloggen müssen, hier mal mein Code fürs einloggen:


        #region Document Complete
        /// <summary>
        /// If the document completed, try to login
        /// </summary>
        /// <param name="sender">browser</param>
        /// <param name="e"></param>
        void browser_DocumentCompletedLogin(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            try
            {
                siteCache = ((WebBrowser)sender).Document;
                if (siteCache.Title == "Data Frame - IML Page")
                {
                    //initialize
                    cache = new StringBuilder();
                    //Stream data = 
                    StreamReader reader = new StreamReader(((WebBrowser)sender).DocumentStream);
                    cache.Append(reader.ReadToEnd());
                    reader.Close();
                    getData();
                    finishData();
                }
                siteCache.All["UN"].InnerText = userName;
                siteCache.All["PW"].InnerText = password;
                siteCache.All["LI"].InvokeMember("Click");
                browser.Navigate(imlInfoAdress[currentMachine]);
                browser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(browser_DocumentCompletedLog);
            }
            catch (WebException ex)
            {
                logWriter.WriteLine(DateTime.Now.ToShortDateString() + ", " + DateTime.Now.ToShortTimeString() + " : " + "[Error]" + " : " + ex.ToString());
                logWriter.Close();
            }

        }
        #endregion

Falls fragen dazu sein sollten, frag halt 🙂

ps: Das ist eine event das auslöst sobald die login seite fertig geladen ist.
stichwort "browser.DocumentCompleted"

04.01.2008 - 06:50 Uhr

Hallo xruxl,

wenn ich dich nicht ganz falsch verstanden habe, würde ich das so machen:


int strMaxLength = 5;
String langStr = "LangerText";

if(langStr.Length > strMaxLength)
langStr = langStr.Substring(0,langStr);

19.10.2007 - 11:50 Uhr

Danke für den Hinweis mit dem Event, so hab ich´s jetzt gemacht und funktioniert auch Tadellos.

Allerdings ist mir null klar was bei meiner Variante vorher so falsch war und es nicht funktioniert hat^^

Gruß Kalleberlin

19.10.2007 - 11:15 Uhr

Mhh irgendwie bin ich jetzt total verwirrt 😦.

In meinen Augen macht es einfach keinen Sinn, eine Dritte Form zu machen nur um eine bereits vorhandene Funktion in der MainForm aufzurufen 😕.

Naja danke trotzdem für eure Hilfe,
irgendwie werd ich das schon hinbekommen.

19.10.2007 - 10:38 Uhr

@Nitro2k7

Nicht ganz:
Ich Zeichne auf meiner Main Form pictureboxen, und nur da, deshalb bringt mir eine weitere Form nichts. Im prinzip funktioniert ja alles, bis auf das ich vermeiden will meine Main Form ein weiteres mal zu zeigen.

@él toro

Danke für den Link, allerdings funktioniert meine Kommunikation bereits, ich will eben nur vermeiden das ich meine Main.Form 2 mal sehe 😉

PS: Die suchfunktion hab ich benutzt...

19.10.2007 - 10:21 Uhr

Hallo Ihr 🙂

Kleines Problem, was ich aber irgendwie nicht hinbekomme.

Von meine Hauptform (Main) öffne ich eine 2. Form, wo der Benutzer etwas auf die Main-Form laden können soll. Soweit so gut.

Mal die aufgerufene Funktion:


        private void btnLoadStats_Click(object sender, EventArgs e)
        {
            Main _main = new Main();

            if (listKnownChars.SelectedItem != null)
            {
                String nick = listKnownChars.SelectedItem.ToString();
                _main.Show(); //wie andere möglichkeit?
                _main.Load(nick);
            }

           
        }

Nun mein Problem. Durch Main.Show() öffnet sich meine Main-Form ja ein zweites mal (eigentlich jedesmal wenn man was laden will^^), wenn ich Main.Show aber nicht aufrufe, passiert mal gar nix 😦. Ein Main.Update() hilft leider nicht.

Wie kann ich das lösen?

Danke und Gruß,
Kalleberlin

18.10.2007 - 09:00 Uhr

Was haltet Ihr denn von einer Skinkomponente? 🙂

11.10.2007 - 08:41 Uhr

Vielen dank, das war genau das wonach ich gesucht habe 🙂

10.10.2007 - 15:56 Uhr

Hallo Ihr, ich mal wieder 🙂

Gibt es eine Möglichkeit, meine Anwendung als eine einzige "exe" fertig zustellen? sprich das z.B. alle dlls vom User nicht zu sehen sind. Oder besser gesagt wirklich alle Dateien sozusagen in einer Datei sind. Weiss nicht wie ich das erklären soll 😁

Gruß Kalleberlin

07.10.2007 - 12:24 Uhr

Ok, dann werd ich das mal So versuchen 🙂.

Hoffe ich bekomm das hin, bin was Threading anbelangt noch sehr unerfahren^^

Danke nochmals für deine Schnelle Hilfe 🙂

Kalleberlin

07.10.2007 - 11:59 Uhr

Original von herbivore
Hallo Kalleberlin,

für einen mehrfachen Aufruf ist die Methode m.E. so nicht geeignet, denn es würde ja jedesmal InitializeComponent wieder neu aufgerufen. Vermutlich ist dass dann genau das Problem.

Danke das war das Problem 🙂

Original von herbivore
BTW:

Außerdem solltest du Parameter (hier ITEMIDPIC, PANELI und PICCOUNT) auch als solche übergeben und nicht über Instanzvariablen "simulieren".

Ich hatte die Funktion ursprünglich auch so geschrieben, aber da das in einem anderen Thread passiert, brauche ich diesen MethodInvoker. Und ich weiss leider nicht wie ich in diesem eine Funktion mit Parameter aufrufe 😦. Denn wenn ich dort eine Methode mit Parameter reinschreibe, bekomm ich die Fehlermeldung "Methodenname erwartet".

Original von herbivore
Nach Namenskonventionen schreibt man aber unabhängig davon sowohl Instanzvariablen als auch Parameter in camelCase.

herbivore

Ich versuchen mich zu bessern 😁

Kalleberlin

07.10.2007 - 11:43 Uhr

Mhh warum ist das der Fehler?

Ich möchte ja nicht beide Panels gleichzeitig bestücken, sonder Panel A mit den Bilder aus dem ITEMPICID array. Und später dann Panel B, mit ganz anderen Bildern.

Wäre nett wenn Du mit das erlären könntest 🙂

PS:

Hier mal der Testaufruf zum bestücken :


        private void btnTest_Click(object sender, EventArgs e)
        {
            
            int[] ids = new int[2];
            ids[0] = 25;
            ids[1] = 18;
            this.ITEMIDPIC = ids;
            this.PANELI = panelAHolder;
            this.PICCOUNT = 2;
            addPicToPanel();
            panelItemHolder.Show();
            this.PANELI = panelBHolder;
            ids[0] = 8088;
            ids[1] = 500;
            this.ITEMIDPIC = ids;
            addPicToPanel();
}

//EDIT:
Ich Seh gerade das ich mich Widersprochen habe^^
Ich hab oben gesagt das ich die Panel nicht gleichzeitig bestücken will und hier hab ich das Gegenteil behauptet.

Ich will PanelA N Bilder aus dem PICITEMID array hinzufügen, danach bekommt das Array neue ID´s um dann das zweite Panel zu bestücken.

07.10.2007 - 11:38 Uhr

Hallo herbivore,

das Setzen der Panels passiert an anderer Stelle 🙂

07.10.2007 - 11:29 Uhr

Hallo Ihr, ich mal wieder 🙂

Ich habe auf meiner Form 2 Panels, auf den ich jeweils unterschiedliche PictureBoxen zur laufzeit hinzufügen möchte.

Die panels Selber sind nicht gleichzeitig zu Sehen.

Hier mal meine Funktion:


        public void addPicToPanel()
        {
            if (this.InvokeRequired)
            {
                this.Invoke(new MethodInvoker(this.addPicToPanel));
            }
            else
            {
                bool width = true;
                InitializeComponent();
                this.PANELI.AutoScroll = true;
                int dPx = 2;
                int dPy = -34;
                L2Items item = new L2Items();
                for (int i = 0; i < this.PICCOUNT; i++)
                {
                    if (i >= 56 && width)
                    {
                        this.PANELI.Width += 16;
                        width = false;
                    }
                    if (i % 7 == 0)
                    {
                        dPx = 2;
                        dPy += 36;
                    }
                    if (this.ITEMIDPIC[i] > 0)
                    {
                        string bitmap = Convert.ToString(this.ITEMIDPIC[i]);
                        String path = @"..\..\images\items\" + bitmap + ".gif";
                        PictureBox pic = new PictureBox();
                        pic.Dock = DockStyle.None;
                        pic.Name = this.ITEMIDPIC[i].ToString();
                        pic.Location = new System.Drawing.Point(dPx, dPy);
                        pic.Size = new System.Drawing.Size(32, 32);
                        pic.BackColor = Color.Black;
                        //panel.Controls.Add(pic);
                        this.PANELI.Controls.Add(pic);
                        //inPanel(panel, pic);
                        if (File.Exists(path))
                        {
                            pic.Image = Image.FromFile(path);
                            toolTip1.SetToolTip(pic, item.getItemDescription(Convert.ToInt32(bitmap)));
                        }
                        else
                        {
                            pic.Image = Image.FromFile(@"..\..\images\items\blank.gif");

                            toolTip1.SetToolTip(pic, item.getItemDescription(Convert.ToInt32(bitmap)));
                        }
                        pic.BringToFront();
                        dPx += 36;
                    }

                }
            }
        }


Jetzt das Problem:

Möchte ich nur Bilder auf einem Panel anzeigen, funktioniert es einwandfrei. Möchte ich aber beide Panels gleichzeitig mit Bildern bestücken, bleibt das Panel, welches als zweites bestückt wird leer 😕. Ich bekomme keine Fehlermeldung, es bleibt einfach leer.

Hab Ihr eine Idee?

Danke, Kalleberlin

05.09.2007 - 16:32 Uhr

Weiss jetzt nicht genau ob ich dich richtig verstanden hab, aber ich machs immer über den projekt explorer - > verweis hinzufügen...

29.08.2007 - 16:29 Uhr

Nimm eine RichTextTbox und füge deine Zeilen Zeilenweise ein. Bringt den selben effekt.

29.08.2007 - 11:56 Uhr

Hi Dr4g0n76,

Original von dr4g0n76
Ausserdem habe ich in Arbeit das für jedes Control quasi ein eigenes Skin gesetzt werden könne. Ist das zu verrückt?

Nö, würde ich cool finden 🙂

Original von dr4g0n76

Ausserdem kann dann für jedes Control ein/ausgeschalten werden, ob geskinned werden soll oder nicht. Ebenso für jede Control Art (z.B: alle Buttons nicht geskinned)

Sehr gut, flexibilität > alles 🙂

Dann noch eine Frage:

In deinem Screenshot, sieht man noch die "Reste" der Standardform, das behebst Du in der finalen Version dann doch sicherlich oder?

Und noch etwas: Ich hab jetzt schon sehr viele Skin-Tools getestet, dabei ist mir aufgefallen das eigentlich alle durch die Bank weg nicht in der Lage sind Scrollbars zu skinnen (Sei es Die von den Webbrowser Controls, listbox etc..). Wenn Du das hinbekommen würdest wär das echt genial 🙂

BTW, schön das es mit deinem Projekt weitergeht 🙂. Wenn ich C# konformer wäre, würde ich dir gerne helfen 😁

Gruß Kalleberlin

28.08.2007 - 15:02 Uhr

Original von knub
eher

  
                    RichTextBox1.AppendText(line);  
  

😉

Upps X( schande über mich 8)

28.08.2007 - 14:59 Uhr

Hallo Pharao2k,

da ich vor gar nicht all zu langer Zeit genau das gleiche Problem wie Du hatte, hab ich eine Antwort auf lager 😄.

Als erstes benötigst Du die

Microsoft Word 11.0 Object Libary (MSOffice 2003), aber sollte in deinem Package drin sein.

Wenn Du die dll eingebunden hat, kanns auch schon losgehen:

Als erstes solltes Du dir in Word deine Textmarker in deiner Vorlage erstellen:

Geh dorthin wo Du deine Daten einfügen willst und klicke auf Einfügen -> Textmarke und merk Dir dann den Namen 😉

Wenn Du fragen zum Code hast, einfach Fragen ;


Microsoft.Office.Interop.Word.ApplicationClass oWord = new Microsoft.Office.Interop.Word.ApplicationClass();

            object readOnly = false;
            object isVisible = true;
            object missing = System.Reflection.Missing.Value;
            object file = PfadZurDatei;
            object oBookMark = "Textmarker"
            String textMarkerWert = String.Empty();
            Microsoft.Office.Interop.Word.Document oWordDoc = oWord.Documents.Open(ref file, ref missing, ref readOnly, ref missing
                , ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref isVisible
                , ref missing, ref missing, ref missing, ref missing);

            oWordDoc.Activate();
            oWordDoc.Bookmarks.get_Item(ref oBookMark).Range.Text = textMarkerWert;
            oWord.Selection.TypeParagraph();
            oWordDoc.SaveAs(ref file, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing
                , ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing
                , ref missing, ref missing);

Ist jetzt ein wenig schlampig gepostet, aber ich bin auf Arbeit und hab kaum Zeit 😠

//edit:

Mittels:


            oWord.PrintPreview = true;
            oWordDoc.PrintPreview();

Kannst Du Dir dann auch eine Druckvorschau anzeigen lassen 😉

28.08.2007 - 14:35 Uhr

Dein Programm macht schon alles so wie Du es willst, nur mit diesem Code:


while ((line = sr.ReadLine()) != null)
                {
                    TextBox.Text = line;
                }

Überschreibst Du den Inhalt der Textbox mit jeder Zeile. Ergo : Du siehst als ergebnis die letzte Zeile deiner Datei 😉.

Versuch es doch mal mit einer RichTextBox 🙂.


while ((line = sr.ReadLine()) != null)
                {
                    RichTextBox1.AppendText = line;
                }

14.07.2007 - 23:06 Uhr

Danke für eure Antworten,

das ich mir den Code aus der designer.cs rausziehen kann weiss ich auch 😉.

Eben genau das wollte ich mir ersparen. Dachte es gibt halt ne "Faulere" Variante 😉.

Dann muss ich des jetzt so machen...

Gruß Kalleberlin

14.07.2007 - 16:21 Uhr

Hallo,

ist es irgendwie möglich von einem bestehendem Projekt, bestimmte elemente sammt code+databindings in ein anderes Projekt zu kopieren?

Gruß Kalleberlin

10.07.2007 - 20:33 Uhr

Hallo,

ich glaube ich bin doch ein wenig dämlich X(.

Ich hab mir das Tutoiral heruntergeladen, und wollte anfangs eigentlich nichts anderes machen als auf der ServerGui, in einer richTextBox, alle vorgänge "mitloggen" zu lassen.

Ich dachte eigentlich das ich das "ganz einfach" über


server = new Server(typeof(ServerGui.server_class));
server.status.messageEvents += new MessageEvent(status_messageEvents);

realisieren kann, allerdings seh ich in der rtb dann nur den Namespace namen "Server.Gui" 🤔.

Kann mir jemand vielleicht auf die Sprüngen helfen?

Gruß Kalleberlin

05.07.2007 - 16:21 Uhr

japp, da hast Du recht, aber :

Ich hab das Array im vorfeld schon fest mit 100 deklariert.

In meinem Fall war es dann so das ich zwar alle user drin hatte, aber eben nur 23, und alles was nach 23 abgefragt wurde war = 0 😄.

Da ich meine User aus einer listbox lese hab ich das Array jetzt mit listbox.items.count deklariert, und schon gehts :>

Danke nochmal für eure Hilfe 😉

05.07.2007 - 14:51 Uhr

Ok,

dank des Using kommt nur noch an der letzen if Abfrage eine ArgumentNullException.

Warum des da noch passiert bekomm ich auch noch raus 👅

Danke euch 🙂

/edit:

ich depp X(.

Klar das da ne Exception kommt, users.length ist ja gleich 100 ^^.

Dann muss ich das anders lösen 😉

05.07.2007 - 14:42 Uhr

Hallo frisch,

dank Dir für deine schnelle Antworten.

Allerdings wirft das 2 weitere Fragen auf 😄.

  1. Ich hab noch nie "using" verwendet, wie genau verwende ich so ein using Block?

  2. GC? Collecten? 👅

Gruß Kalleberlin

//Tante Edit:

Hallo Herbivore,

das einzige was ich vorher aufrufe ist eine eigene Methode die mir eine listbox füllt. Was ja auch wunderbar funktioniert!

Ich hab mir das Array angeschaut, welches zum Zeitpunkt des austiegs 23 groß ist (max 100), was vielleicht ein Problem sein könnte ist, dass "sLine" ungefähr so aussieht:


 "                                      ".

Könnte das ein Problem sein?

05.07.2007 - 14:35 Uhr

Hallo,

Ich stehe hier vor einem kleinen aber feinen Rätsel.

Ich möchte etwas aus einem Textfile filter, was an sich auch keine Probleme bereiten sollte.

Aber, folgender Code schmeisst eine ArgumentNullException:


StreamReader sr = new StreamReader(path_temp);
            String sLine = String.Empty;
            while (sLine != null)
            {
                sLine = sr.ReadLine();
                if (sLine != null)
                {
                    for (int i = 0; i < users.Length; i++)
                    {
                        if (sLine.Contains(users[i]))
                        {
                            rtbConnectedUsers.AppendText(sLine);
                        }
                    }
                }
            }

Das array wurde vorher schon an anderer Stelle befüllt und hat auch den gwünschen Inhalt.

Und jetzt wirds strange :

Die letzte if Abfrage, schmeisst eine ArgumentNullException. Soweit sogut. Wenn ich das debuggen nun aber beende und das Programm erneut starten möchte, erhalte ich wieder eine ArgumentNullException, allerdings an Codestellen, die definitv Funktionieren 🤔

Hier mal eine Fehlermeldung vom VS:

System.ArgumentNullException wurde nicht behandelt.
Message="Der Wert darf nicht NULL sein."
Source="mscorlib"
StackTrace:
bei System.Threading.Monitor.Enter(Object obj)
bei Telnet.Terminal.WaitForString(String searchFor, Boolean caseSensitive, Int32 timeoutSeconds)
bei Telnet.Terminal.WaitForString(String searchFor)
bei CreateWlanUser.Form1.btnConnectedUser_Click(Object sender, EventArgs e) in C:\Users\kalleberlin\Documents\Visual Studio 2005\Projects\CreateWlanUser\CreateWlanUser\Form1.cs:Zeile 541.
bei System.Windows.Forms.Control.OnClick(EventArgs e)
bei System.Windows.Forms.Button.OnClick(EventArgs e)
bei System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
bei System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
bei System.Windows.Forms.Control.WndProc(Message& m)
bei System.Windows.Forms.ButtonBase.WndProc(Message& m)
bei System.Windows.Forms.Button.WndProc(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
bei System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
bei System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
bei System.Windows.Forms.Application.ComponentManager.System.Windows.Forms. UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
bei System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
bei System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
bei System.Windows.Forms.Application.Run(Form mainForm)
bei CreateWlanUser.Program.Main() in C:\Users\kalleberlin\Documents\Visual Studio 2005\Projects\CreateWlanUser\CreateWlanUser\Program.cs:Zeile 17.
bei System.AppDomain.nExecuteAssembly(Assembly assembly, String[] args)
bei System.Runtime.Hosting.ManifestRunner.Run(Boolean checkAptModel)
bei System.Runtime.Hosting.ManifestRunner.ExecuteAsAssembly()
bei System.Runtime.Hosting.ApplicationActivator.CreateInstance(ActivationContext activationContext, String[] activationCustomData)
bei System.Runtime.Hosting.ApplicationActivator.CreateInstance(ActivationContext activationContext)
bei Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssemblyDebugInZone()
bei System.Threading.ThreadHelper.ThreadStart_Context(Object state)
bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
bei System.Threading.ThreadHelper.ThreadStart()

Erst wenn ich meinen Rechner komplett neustarte (ab und anmelden bringt leider nichts), funktioniert es wieder.

Demzufolge, denke ich das Da noch irgendwas im Speicher rumfliegt ?!?

Tips für eine Lösung wären nett 🙂

Gruß Kalleberlin

28.06.2007 - 23:15 Uhr

Hallo newsunflower,

ja soetwas geht.

Für .PNG gibt es z.B. png2ico. Je nachdem was für ein Format Du umwandeln möchtest, gibt es mehre tools. Teil gratis, teils kostenpflichtig. Google ist dein Freund 😉

Gruß
Kalleberlin

26.06.2007 - 11:18 Uhr

Die Frage wäre nach wie vor aktuell 🙂.

Oder hat wirklich niemand eine Idee?