Laden...

Forenbeiträge von Gumba Ingesamt 28 Beiträge

10.09.2011 - 19:08 Uhr

wir wärs mit

browser.Navigate(textBox1.Text)

?

09.09.2011 - 02:40 Uhr

Hallo Lukas,

die Lösung sollte ungefähr so aussehen:

using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        int doubleclicks = 0, start, len;

        public Form1()
        {
            InitializeComponent();
        }

        private void textBox1_MouseDoubleClick(object sender, MouseEventArgs e)
        {
            int cursorPosition = textBox1.SelectionStart;
            int nextSpace = textBox1.Text.IndexOf(" ", cursorPosition); // das nächste leerzeichen nach dem cursor
            for (int i = 0; i < doubleclicks; i++)
            {
                nextSpace = textBox1.Text.IndexOf(" ", nextSpace + 1); // wenn mehr als 1 wort ausgewählt wird finde das letzte leerzeichen
            }

            int selectionStart = 0;
            string trimmedString = "";

            if (nextSpace != -1)
                trimmedString = textBox1.Text.Substring(0, nextSpace); // kopiere den teil bis zum space für weitere verarbeitung
            else
                trimmedString = textBox1.Text;

            if (trimmedString.LastIndexOf(" ") != -1)
            {
                selectionStart = 1 + trimmedString.LastIndexOf(" "); // ermittle den Anfangspunkt
                trimmedString = trimmedString.Substring(1 + trimmedString.LastIndexOf(" ")); // -> das zu selectierende wort
            }

            if (doubleclicks == 0)
            {
                start = selectionStart;
                len += trimmedString.Length;
            }
            else
                len += trimmedString.Length + 1; // +1, da wir bei mehr als 1 wort auch die spaces auswählen müssen

            textBox1.SelectionStart = start;
            textBox1.SelectionLength = len;
            doubleclicks++;
        }
    }
}

Hab ich übrigens abgeleitet von C # | Wie kann ich ein Wort in einem Text mit dem Cursor Location wählen? 😉
Gesucht wurde dabei bei google.de mit "c# textbox wort unter maus". also nächste mal selber mal n bisschen "googlen" und n bisschen eigenen gehirnsschmalz investieren und dann sollte das gut fruchten 😉

Mfg
Gumba

06.09.2011 - 20:57 Uhr

wie wärs mit einer reset-funktion, in der du alles was möglich ist auf den anfangswert zurücksetzen lässt? Also Variablen, Positions, Locations, etc.

Mfg
Gumba

EDIT.: Wobei Postition und Locations vom User jedoch gesehen werden würden, wenn sie im Clientbereich liegen.

15.08.2011 - 23:44 Uhr

ok letzten endes ist es eine mischung aus folgender Methode und File.Extension geworden.

public static bool IsText(FileInfo fileName, int windowSize)
        {
                using (var fileStream = fileName.OpenRead())
                {
                    Encoding encoding;
                    var rawData = new byte[windowSize];
                    var text = new char[windowSize];
                    var isText = true;

                    // Read raw bytes
                    var rawLength = fileStream.Read(rawData, 0, rawData.Length);
                    fileStream.Seek(0, SeekOrigin.Begin);
                   
                    // Detect encoding correctly (from Rick Strahl's blog)
                    // http://www.west-wind.com/weblog/posts/2007/Nov/28/Detecting-Text-Encoding-for-StreamReader
                    if (rawData[0] == 0xef && rawData[1] == 0xbb && rawData[2] == 0xbf)
                    {
                        encoding = Encoding.UTF8;
                    }
                    else if (rawData[0] == 0xfe && rawData[1] == 0xff)
                    {
                        encoding = Encoding.Unicode;
                    }
                    else if (rawData[0] == 0 && rawData[1] == 0 && rawData[2] == 0xfe && rawData[3] == 0xff)
                    {
                        encoding = Encoding.UTF32;
                    }
                    else if (rawData[0] == 0x2b && rawData[1] == 0x2f && rawData[2] == 0x76)
                    {
                        encoding = Encoding.UTF7;
                    }
                    else
                    {
                        encoding = Encoding.Default;
                    }
                    // Read text and detect the encoding
                    using (var streamReader = new StreamReader(fileStream))
                    {
                        streamReader.Read(text, 0, text.Length);
                    }

                    using (var memoryStream = new MemoryStream())
                    {
                        using (var streamWriter = new StreamWriter(memoryStream, encoding))
                        {
                            // Write the text to a buffer
                            streamWriter.Write(text);
                            streamWriter.Flush();

                            // Get the buffer from the memory stream for comparision
                            var memoryBuffer = memoryStream.GetBuffer();

                            // Compare only bytes read
                            for (var i = 0; i < rawLength && isText; i++)
                            {
                                isText = rawData[i] == memoryBuffer[i];
                            }
                        }
                    }

                    return isText;
                }
        }

danke Nitro2k7 für den Link. Hätte sonst nich gewusst, wonach ich hätte suchen müssen 😉

Bis zum nächsten Problem!

Mfg
Gumba

15.08.2011 - 05:12 Uhr

Hallo Leute,

ich versuche grade Dateien ohne Rücksicht auf deren Endung auszulesen. Dabei will ich jedoch eine Art "Vorfilter" einbauen, so dass überprüft wird, ob die Datei wirklichen eine Textdatei ist und somit "lesbaren" Text enthält oder ob es sich um eine Datei handelt, welche nicht für das Auslesen geeignet ist, wie z.B. .mp3 -> wenn man solch eine Datei ausließt bekommt man nur kryptischen Text.
Vereinfacht gesagt bin ich auf der Suche nach Textdateien unabhängig von Ihrer Endung. Wie also kann ich die Dateien auf kryptischen oder normalen Text überprüfen?
Ich hoffe auf Antworten 😃

Mfg
Gumba

29.07.2011 - 17:08 Uhr

Falls ja, dann wäre die interessante Frage, was diese IsVisible-Methode macht, die du aufrufst. Wird da Pixel-Genau überprüft oder nur über ein Rechteck (welches der Größe des Bildes entspricht)?

GraphicsPath.IsVisible-Methode (Point)
-> Gibt an, ob der angegebene Punkt in diesem GraphicsPath-Objekt enthalten ist.

das heißt in meinem Fall wird geschaut, ob die Mousposition innerhalb meines Images liegt (also quasi innerhalb eines Rechtecks)

den QuadTree werd ich mir mal anschauen, vll find ich da ja zusätzliche Anregungen 😉

"dynamische Anzahl an Bildern" klingt nach einem rechteckigen / schachbrettartigem Aufbau. Bei einem solchen kannst du (hauptsächlich mit einfachem Dreisatz) aus den Koordinaten direkt ausrechnen, auf welches Bild geklickt wurde.

es geht ja nicht um einen Klick auf das Bild -> das könnt ich auch im MouseClick-Event verarbeiten und momentan habe ich noch keine Performanceprobleme. Meine Befürchtungen waren nur, dass ich später bei einer größeren Anzahl an Bilder welche bekommen könnte und wollte deshalb jetzt in der Anfangs-Entwicklungsphase dieses mögliche Problem beseitigen 😉
Aber vll lässt sich das ja über den erwähnten Dreisatz lösen, denn die Bilder sind wirklich in ner Art Schachbrett aufgereiht 😉

Mfg
Gumba

Edit.: Gibts für den Dreisatz nen Ansatz, den ich benutzen kann? Steh da grad iwie aufm Schlauch 🤔

29.07.2011 - 04:39 Uhr

Hallöchen,

konnte leider nix passendes zu meinem Problem finden.
Folgendes: Ich habe eine dynamische Anzahl an Bildern, die ich über GDI+ zeichne.
Ich möchte jetzt erreichen, dass wenn die Maus sich über einem der Bilder befindet sich die Hintergrundfarbe verändert.
Das Überprüfen der Mausposition und der des Bildes stellt kein Problem da, nur befindet sich die Überprüfung momentan im MouseMove-Event
und d.h. es wird jedesmal eine Schleife abgarbeitet und auf übereinstimmung geprüft.
Da die Bilderanzahl aber dynamisch ist, wird dies bei einer großen Menge an Bilder sehr problematisch,
von daher bin ich auf der Suche nach einer Art MouseEnter-Event für selbstgezeichnete Bilder oder einer passenden Alternative.
Ich hoffe mir kann geholfen werden 🙂

Mfg
Gumba

private void Form1_MouseMove(object sender, MouseEventArgs e)
        {
            for (int i = 0; i < images.Count; i++)
            {
                if (images[i].IsVisible(MousePosition))
                {
                    MessageBox.Show(i.ToString());
                    break;
                }
            }
        }

images -> List<GraphicsPath>

10.07.2011 - 22:20 Uhr

Wie gesagt: Wenn du transformierst, brauchst du das nicht explizit einzurechnen.

Tu ich auch nicht und ich benutze ja dein transformieren 😉 Transformiert wird halt lediglich die AutoScrollPosition 😁

Dein Code ist sehr interessant! Der wird mit bestimmt bei etwaigen Zusatzfunktionen hilfreich sein 😁 Sollten Fragen dazu auftauchen, werd ich mich auf jeden Fall noch mal bei dir melden 😉

mfg
Gumba

09.07.2011 - 15:31 Uhr

ok ich hab jetzt testweise nur ein rechteck zeichnen lassen. das rote X kommt nicht mehr, aber der rahmen ist beim langsamen hin und wieder zurück scrollen nicht zu sehen, beim schnellen scrollen entstehen grafikfehler 🙁


private void map_Paint(object sender, PaintEventArgs e)
{
     e.Graphics.DrawRectangle(pen, 100, 100, 200, 200);
}

mfg
Gumba

EDIT.: Wenn ich die Form Resize wird das rechteck wie gewünscht gezeichnet. Es scheint also nur beim scrollen probleme zu geben...

EDIT2.: Also manchmal könnt ich mich echt Ohrfeigen 😜 Wenn man die AutoscrollPosition weglässt is klar warums nich gescheit gezeichnet wird 😁
Also mit

e.Graphics.DrawRectangle(Pens.Red, 100 + map.AutoScrollPosition.X, 100 + map.AutoScrollPosition.Y, 200, 200);

klappts jez 👍

Das mit dem Generieren der Screenshots hab ich auf den Aufruf der Form gelegt. Wird also nur noch 1x zu Beginn ausgeführt 😉

Vielen Dank noch mal für eure Hilfe 😁

Mfg
Gumba

09.07.2011 - 03:16 Uhr

@winSharp93 ich weiß auch nicht warum ich pictureboxen genommen hab, wo ich den rahmen ja schon via graphics zeichne 🤔

@herbivore danke für die herleitung 🙂 damit konnte ich winsharps ansatz optimal umsetzen. 👍

hier noch mal der finale code:


private void map_Paint(object sender, PaintEventArgs e)
        {
            if (weblist.IndexOf(aktweb) * aufx / 6 + aufx / 14 >= map.ClientSize.Width / 2)
            {
                int add = weblist.IndexOf(aktweb) * aufx / 6  + aufx / 14 - map.ClientSize.Width / 2;
                e.Graphics.TranslateTransform(add, 0);
            }

            for (i = 0; i < weblist.Count; i++)
            {
                if (i < weblist.IndexOf(aktweb))
                    e.Graphics.DrawImage(GenerateScreenshot(weblist[i]),
                                         map.ClientSize.Width / 2 - aufx / 14 - (weblist.IndexOf(aktweb) - i) * aufx / 6,
                                         map.ClientSize.Height / 2 - aufy / 14,
                                         aufx / 7, aufy / 7);
                else if (i > weblist.IndexOf(aktweb))
                    e.Graphics.DrawImage(GenerateScreenshot(weblist[i]),
                                         map.ClientSize.Width / 2 - aufx / 14 + (i - weblist.IndexOf(aktweb)) * aufx / 6,
                                         map.ClientSize.Height / 2 - aufy / 14,
                                         aufx / 7, aufy / 7);
                else
                    e.Graphics.DrawImage(GenerateScreenshot(weblist[i]),
                                         map.ClientSize.Width / 2 - aufx / 14,
                                         map.ClientSize.Height / 2 - aufy / 14,
                                         aufx / 7, aufy / 7);

                Pen pen = new Pen(Color.Lime, 5);
                e.Graphics.DrawRectangle(pen,
                                         map.ClientSize.Width / 2 - aufx / 14 - 5,
                                         map.ClientSize.Height / 2 - aufy / 14 - 5,
                                         aufx / 7 + 9,
                                         aufy / 7 + 9);
            }
        }

EDIT.: Nachdem gescrollt wurde sind die Bilder verschwunden.. Sollte es aber nicht so sein, dass per Scroll die Paint-Methode aufgerufen wird? Es passiert auch, dass der Clientbereich plötzlich ein rotes X auf weißem grund zeigt. Ich kann dazu leider kein bild hochladen, dass ein screenshot daon nicht möglich ist. Außerdem kommt es mit teilweise so vor, dass er mit dem Zeichnen beim Scrollen nicht hinterher kommt 🙁
Vielen Dank für eure Hilfe 👍

Mfg
Gumba

08.07.2011 - 18:31 Uhr

hallo ihr lieben 😉

ich hab mal wieder ein kleines Problem, welches ich unter der suche nicht gefunden habe.
Und zwar ist es so, dass ich eine Art Karte von Webseiten erstellen möchte, wobei die aktuelle Webseite immer in der Mitte der Form angezeigt werden soll. So weit kein Problem. Da Problem kommt jedoch, wenn Webseiten links der aktuellen gezeichnet werden. Dabei gehen diese über die Form hinaus (in den negativen Bereich jenseits von 0 😄) und ich konnte noch keine Möglichkeit finden, welche es mir erlaubt in diesen Bereich zu scrollen. AutoScroll ist natürlich auf true 😉
Ich hab mir schon gedanken darüber gemacht, dann "einfach" alle Pictureboxen entsprechend nach rechts zu verschieben, so dass es passt, nur leider weiß ich nicht, wie ich die aktuelle dann in der Mitte halten soll...

Hier noch ein bisschen Code, wie die Pictureboxen erstellt werden:


for(i = 0; i < brlist.Count; i++)
{
   pb.Add(new PictureBox());
   map.Controls.Add(pb[i]);
   pb[i].Size = new Size(aufx / 7, aufy / 7);
   pb[i].SizeMode = PictureBoxSizeMode.StretchImage;
   pb[i].Image = image;

   if (i < weblist.IndexOf(aktweb))
      pb[i].Location = new Point(map.ClientSize.Width / 2 - pb[i].Width / 2 - (weblist.IndexOf(aktbr) - i) * aufx / 6, map.ClientSize.Height / 2 - pb[i].Height / 2);
   else if (i > weblist.IndexOf(aktweb))
      pb[i].Location = new Point(map.ClientSize.Width / 2 - pb[i].Width / 2 + (i - weblist.IndexOf(aktbr)) * aufx / 6, map.ClientSize.Height / 2 - pb[i].Height / 2);
   else
      pb[i].Location = new Point(map.ClientSize.Width / 2 - pb[i].Width / 2, map.ClientSize.Height / 2 - pb[i].Height / 2);
}

weblist ist eine Liste mit allen Webseiten,
pb ist eine Liste mit entsprechender Anzahln an Pictureboxen,
map ist meine Form,
aufx ist die Bildschrimauflösung in x Richtung (dementsprechend werden die Pictureboxen proportional angepasst)
aufy ist die Bildschirmauflösung in y Richtung
Bei Fragen einfach melden 😉

Mfg
Gumba

Ach so hier noch ein Bild, welches die Situation beschreibt

20.02.2011 - 18:25 Uhr

Hallo Community 😃

ich hab ein eher kleines Problem, konnte jedoch noch keine Lösung dafür finde 😦
Ich habe in meinem Project ein extendedPanel eingefügt -> z.B. im geschlossenen Zustand Height = 25. Jetzt geht das Panel beim klicken auf, d.h. die Höhe nimmt zu. Da aber direkt unter dem Panem eine PictureBox liegt, würde diese dann verdeckt werden. Also lasse ich die Position neu setzen -> Bei Annahme die StartPosition der PictureBix ist 40 in der Höhe, so würde beim Extendespanel.Resize event (also beim öffnen) die Position der PB auf 40 + extendedpanel.Height - 25 sein (da EP ja std. 25 hoch war). Bei diesem "Dauerpositionswechsel" bis das EP ganz offen ist fängt die PB leider an zu "flackern". Gibt es da irgendeine Möglichkeit dieses flackern zu verhindern?

Mfg
Gumba

14.02.2011 - 17:38 Uhr

ohne scheiß ich hab die lösugn gefunden...
naja nur ne notlösung:
anscheinend wollte der geckobrowser die neueste version des XULRunners nicht.
Mit der vorherigen Version funktionierts jedoch ohne probleme.

Close plz 😉

14.02.2011 - 16:29 Uhr

ok hab jetzt mal ein neues project geöffnet und nur den browser eingefügt...
auch hier ist er nicht sichtbar (navigate ist auf www.google.de)

14.02.2011 - 16:11 Uhr

Auf ein neues 😃
Ich hab ein mehr oder minder großes Problem:
Ich hab unter Win XP (x86) mit Hilfe von VC# 2008 einen kleine Browser geschrieben, welcher auf den Gecko Browser aufbaut. Hab jetzt aber ein neues System (Win 7 (x64))
und wollte natürlich gleich meine Projecte rüberkopieren und anpassen. So weit so gut den Browser also schön auf x86 umgestellt speicherort etc. angepasst. Debug geht. Leider wird im Debug der Browser nicht angezeigt... Events scheinen aber u funktionieren (hab mal mit click probiert und das er dann ne Messagebox zeigen soll geht) obwohl der Browser nicht sichtbar ist. Errors sind keine erschienen. Visible = true oder in den Vordergrund heben haben nicht zum Ziel geführt. Im Designer wird der Browser jedoch korrekt angezeigt... Hab jetzt mal versucht es vie debug ordner zu starten -> dort bekomme ich eine Fehlermeldung (Siehe Anhang). Bin für jeden Lösungsvorschlag offen...

12.02.2011 - 19:25 Uhr

ich denke so werde ich es machen müssen... schade eigentlich. würde vieles vereinfachen 😉
Aber danke für die schnelle Antwort

Mfg
Gumba

12.02.2011 - 18:35 Uhr

Hallo Leute,
ich habe mal wieder ein kleines Problem, für das ich keine Lösung finde.
Ich habe eine richTextBox mit einem KeyDownEvent, welche bei Enter gelöscht werden soll. Da ich dieses Löschen jedoch auch auf einem Button liegen habe hab ich mir gedacht, dass man theoretisch ja die beiden Events zusammenpacken könnte. Gesagt getan. Mein Problem liegt jetzt leider darin, dass ich KeyDown abfragen muss und er nur bei Enter löschen soll. Ich habe folgenden Funktionskopf:

private void senden(object sender, EventArgs e)

EventArgs e wird zu KeyEventArgs gecastet, damit ich den Key auslesen kann. Außerdem werden beide Controls via if abgefragt:

if ((((KeyEventArgs)e).KeyCode == Keys.Enter ||  sender == enterPic)

Mein Problem ist folgendes: Wenn ich sender zu Button caste sagt er mir bei ausführung, wenns über die rtb geht: rtb kann nicht zu button gecastet werden. Also hab ich es mir dem puren object sender versucht, was augenscheinlich auch klappt, nur leider sagt er mir dann bei klicken auf den button, dass MouseEventArgs nicht zu KeyEventArgs gecastet werden können. 😦
Das jeweils andere Control blockiert also quasi die if-abfrage für das andere Control. Gibt es da eine möglichkeit dies zu umgehen?
Und ja ich würde die Funktionen gerne zusammenlegen, da beide extrem lang sind und im grunde das selbe drinsteht 😉

Mfg
Gumba

13.01.2011 - 21:25 Uhr

Anscheinend funktioniert das mit der Settingsdatei. Allerdings weiß ich jetzt nicht genau, wie ich den Array initalisieren soll?
Habs mit

Properties.Settings.Default.test = new String[][];

probiert, aber irgendwie will der das nicht...

Mfg
Gumba

Edit.: Ok habs jetzt mit

Properties.Settings.Default.test = new String[1, 2];

hinbekommen 😉 Vielen Dank!

Mfg
Gumba

12.01.2011 - 17:47 Uhr

Hi,

ich konnte leider mal wieder nichts finden, was mir weiterhelfen würde.
Meine Frage ist, ob es eine Möglichkeit gibt in den Settings ein 2D array zu erstellen.
Bis jetzt habe ich leider nur normale Arrays gefunden.
Kann mir da jemand weiterhelfen?

Mfg
Gumba

02.01.2011 - 21:31 Uhr

ok anscheinend klappt jetzt alles und es hat wirklich daran gelegen, dass ich die combobox im falschen thread gelesen hab 😦
wollte mich noch mal bei allen hier bedanken
bis zumnächsten problem 😉

Mfg
Gumba

31.12.2010 - 19:36 Uhr

ich hab nen breakingpoint auf die if abgrafe gesetzt und die werte verglichen. alle variablen und werte sind so wie sie sein sollen.
an dem label4 hat es anscheinend nicht gelegen, denn das hab ich eben rausgenommen und durch eine Messagebix ersetzt, die hallo ausgeben soll, falls die if-abfrage erfolgreich ist. Leider hat es wieder einmal nich geklappt... 😦

EDIT.: Also leute es scheint irgendetwas mit der comboBox nicht zu stimmen, denn einen normlane string kann ich vergleichen. Ich mach mich dann mal auf die suche nach dem fehler und melde mich wenn ich ihn gefunden hab 😉

Mfg

EDIT2.: Also das ganze ist sehr mysteriös! Bei der sichtbaren textBox steht in den comboBox-Items Name
Bei der textbox erstellt zur runtime steht in den comboBox-Items Name\0inf\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0

warum????
Wobei man, wenn man in die comboBox schaut nur Name auffindet. die ganzen \0 sind dann verschwunden, aber ich denke genau hier drückt der schuh! Hat vll jemand ne idee warum das auftritt?

31.12.2010 - 19:05 Uhr

es geht ja leider nicht um das ausgewählte item 😉
ich poste einfach mal die schleife in der der vergleich drin steht:


for (j = 0; j < comboBox1.Items.Count; j++)
{
   MessageBox.Show(textBox1.Text + " " + comboBox1.Items[j].ToString());
   if (textBox1.Text.StartsWith(comboBox1.Items[j].ToString()))
   {
      label4.Text = comboBox1.Items[j].ToString();
      kontakt = comboBox1.Items[j].ToString();
      break;
   }
}

sobald der vergleich true ist, wird kontakt auf das ensprechende item gesetzt und später wird der text dann zu dem entsprechenden kontakt zugeordnet. Der Grundausgang ist, dass es verschiedene Kontakte geben soll und der empfangene text zu den Kontakten (je nachdem wer geschickt hat) zugeordnet wird.

Mfg

EDIT.: Das komische ist: Bevor der Anfang des Strings verglichen wird wird zunächst das Ende verglichen, um die Art des Textes zu definieren (neuer Kontakt oder einfache Nachricht). Die Überprüfung mit EndsWith funktioniert aber tadellos sowohl mit sichtbarer als auch unsichtbarer textbox...

31.12.2010 - 14:36 Uhr

dann will ich versuchen es etwas genauer darzustellen 😉
es gibt 2 threads: 1x den hauptthread (den man immer hat) und 1x einen zusätzlichen thread.
Dieser zusätzliche thread wird zu beginn gestartet und hat dann nichts mehr mit dem hauptthread zu tun (es wird 1x ein treenode gesetzt doch das wurde mit treeNode.BeginnInvoke erfolgreich ausgelagert). Desweiteren soll dieser thread einen in diesem thread erstellten string mit einem item aus einer combobox vergleichen, welche im hauptthread erstellt wurde. Diese combobox wird jedoch nicht aktualisiert, noch wird etwas gesetzt. Es wird lediglich das Item abgefragt (Könnte hier vll der Konflikt liegen?).

Mfg
Gumba

30.12.2010 - 22:09 Uhr

das wird bei mir schwierig...
Der thread soll sich um den empfang von strings kümmern und ich zunächst auf einen server connecten und ich dann von einer zweiten anwendung einen string schicken müsste. Ich habe jedoch um die werte, die im if überprüft werden sollen vorher noch zu überprüfen eine messagebox vor das if gesetzt.

MessageBox.Show(textBox1.Text + " - " + comboBox1.Items[0].ToString())

Diese gibt z.B. folgendes aus (textboxinhalt zuerst comboboxinhalt folgend):

Name: Wie geht es dir? - Name

In diesem Fall steht Name für den benutzer von anwendung 2 der den string geschickt hat. Der name wird bei jeder nachricht automatisch davorgesetzt (mit : und " ") nun soll er halt die anfang von Name: Wie geht es dir? mit Item[0] vergleichen. Und da wir ja gesehen haben, dass Name durchaus der Anfang des Strings ist und wir wissen, dass StartWith soweit vergleicht, wie werte da sind (also die länge von Name) müsste normalerweise die überprüfung true ergeben, was sie jedoch nicht tut...

Mfg

EDIT.: Rechtschreibfehler 😉
EDIT2.: Ich merke grade, dass es jetzt auch mit sichtbarer textBox nicht mehr funktioniert. Ich werde noch mal alles überprüfen und mich dann erneut hier melden 😉
EDIT3.: Ok falscher Alarm -.- mit sichtbarer textbox funktioniert es doch noch (hatte alten buildstand genommen) das problem besteht also weiterhin noch

30.12.2010 - 21:41 Uhr

danke für die schnelle antwort
nur leider bin ich mir zu 100% sicher, dass die werte gesetzt sind, da in dem thread ZUERST die werte alle gesetzt sind und erst wenn sicher gestellt ist, dass alle vorhanden sind wird verglichen. Es wird auch nicht vom worker thread darauf zugegriffen, es läuft alles seperat in diesem thread ab. es wird nicht mal was ausgegeben, was vll im konflikt mit dem hauptthread stehen könnte. es wird nur eine varibale gesetzt, die wiederrum nur in diesem thread für weitere aktionen genutzt werden soll.

Das kuriose ist ja, das wenn beim ablauf die textbox sichtbar ist es funktioniert. Wenn beim SELBEN ablauf jedoch die textbox unsichtbar ist funktioniert es nicht mehr?? Also irgendwie glaub ich da is was faul 😉

Mfg

30.12.2010 - 21:27 Uhr

hey,

ich konnte keine lösung für mein problem finden, auch nicht mit der suchfrunktion (vll die falschen keywords?), also hab ich mich entschlossen einen neuen thread aufzumachen um mein problem zu schildern:

In meiner Anwendung muss ich den Anfang von einem String mit einem Item aus einer comboBox vergleichen. Der String steht in einer Textbox. Für den Vergleich hab ich

if (textBox1.Text.StartsWith(comboBox1.Items[0].ToString()))

Das Problem ist folgendes:
Wenn die textBox sichtbar ist funktioniert das if optimal, aber wenn die textbox unsichtbar ist funktioniert der code komischerweise nicht mehr. Warum nicht?
Ich habe das Vergleichen auch noch mit einem normalen String sowie einer textbox (unsichtbar/sichtbar) die zur laufzeit erstellt wurde getestet - es funktioniert keins von den dreien.
Meine Frage also: Warum funktioniert StartWith bei einer SICHTBAREN textbox bei einer UNISCHTBAREN und einem String aber nicht?

Um noch ein paar Infos da zu lassen: Der Vergleich wird in einem neben-thread ausgeführt. Mit dem Thread gibt es jedoch soweit keine Probleme.
Also falls ihr Lösungen für mein Problem wisst würd ich mir über Antworten freuen.
Am besten wenn es Lösungen mit normalen String sind, da ich die Textbox löschen möchste. Sollte es jedoch nur über die Textbox funktionieren wäre das auch kein Problem.

Mfg
Gumba

04.08.2010 - 16:54 Uhr

alles klar 😄 danke =) ich werd sofort mal nach googlen 😉

Gumba

04.08.2010 - 12:42 Uhr

Also leute ich bin mal wieder am verzweifeln^^
Seit längerem suche ich nun schon nach einer Möglichkeit via pfeil-button zusätzliche Optionen zur Verfügung zu stellen. Auf dem angehängten Bild klickt man zum Beispiel auf die Pfeile links und rechts und man sieht dann auf der linken Seite den Equalizer und rechts die Playlist. Diese beiden Sachen kann man auf- und zuklappen.
Ich suche so etwas für vc#, wahlweise auch c++/cli. Also quasi ein toolStripContainer, wo die Pfeile nicht nach innen sondern nach außen aufklappen und man auch andere dinge, wie z.B. treeView oder eine richTextBox einfügen kann. (bei klick auf den Pfeil wird dann sozusagen die richTextBox aufgeklappt). Leider hab ich keinen Schimmer wie man so etwas nennt, deswegen hilft mir die Suche hier nicht wirklich weiter. Könnte vll jemand einen denkanstoß posten oder wenigstens den namen dieses Aufklappdings? Dann wäre mir vll schon geholfen. Für jeglichen konstruktiven Quellcode in c# oder c++/cli bin ich natürlich auch offen^^. Ich hoffe ihr könnt mir helfen.

Mfg
Gumba