Laden...

uri-fehler bei eigenem WebBrowser

Erstellt von C#-Starter vor 15 Jahren Letzter Beitrag vor 15 Jahren 3.555 Views
C
C#-Starter Themenstarter:in
12 Beiträge seit 2008
vor 15 Jahren
uri-fehler bei eigenem WebBrowser

Hallo ihr Lieben,

ich fange grad an einen eigenen WebBrowser zu schreiben/designen....nunja so um mich mal in c# reinzufinden.

Jetzt hänge ich an einer stelle:


 private void button1_Click(object sender, EventArgs e)
        {
            string dim = textBox1.Text;
            dim = textBox1.Text.Substring(1,4);

            if (dim == "http")
            {
                webBrowser1.Navigate(new Uri(textBox1.ToString()));
            }

            else
            {
                textBox1.Text = "http://" + textBox1.Text;
                webBrowser1.Navigate(new Uri(textBox1.ToString()));
            }

        }

so sieht das aus... er soll wenn ich in meine textbox kein http eingebe(also kein drinsteht) automatisch beim laden der page ein http:// einfügen... führe ich da sprogramm aus und probiere es sagt er mir das ein uri fehler("Ungültiger URI: Das URI-Schema ist ungültig.") vorliegt.

wie lautet da der richtige befehl?
ich finde es nicht... bei meinem integrieretem speedDial funktionert es so :

webBrowser1.Navigate(new Uri(SpeedDial.SelectItem.ToString()));

thx im vorraus

Console.WriteLine("Einen schönen Tag wünscht euch Paddy");

T
109 Beiträge seit 2008
vor 15 Jahren

hi,

das liegt einfach daran das du mit // ein kommentar einleitest!
versuch mal /"+"/

natürlich sehr unschön aber mir fällt grad die richtige methode nicht einxD

führe ich da sprogramm aus

sollte garnicht gehen weil dir in der zeile ein ; fehlt, wiel es ja auskommentiert ist!
Torley

J
130 Beiträge seit 2008
vor 15 Jahren

Hi!

ich denke mal das sollte dir weiterhelfen 😉

Gruß
Jimmy


if (e.KeyCode == Keys.Enter)
            {
                string http = "http://";
                string s = textBox1.Text;

                if(s.Contains("http://"))
                {
                    webBrowser1.Navigate(new Uri(s));
                }
                else
                {
                s = http + s;
                webBrowser1.Navigate(new Uri(s));
                }
            }

**“DOH !” -Homer Simpson**
C
C#-Starter Themenstarter:in
12 Beiträge seit 2008
vor 15 Jahren

wo fehlt mit ein semikolon?

versteh ich net...mit dem /+/ das probier ich sofort ma aus

Console.WriteLine("Einen schönen Tag wünscht euch Paddy");

C
C#-Starter Themenstarter:in
12 Beiträge seit 2008
vor 15 Jahren

apropos // und kommi einführen.... es steht aber "htpp://"...durch die "" ist es doch aber ein string und was in dem string steht ist ihm doch völlig egal oder nicht?

Console.WriteLine("Einen schönen Tag wünscht euch Paddy");

T
109 Beiträge seit 2008
vor 15 Jahren

sorry nehm meinen post zurück, hast ja recht! sah nur in dem code hier im forum so aus! (scheint das forum wohl nicht zu können xD)

textBox1.Text = "http://" + textBox1.Text;

versuchs mal mit dem code von Jimpanse!

Torley

C
C#-Starter Themenstarter:in
12 Beiträge seit 2008
vor 15 Jahren


private void button1_Click(object sender, EventArgs e)
        {
            string dim = textBox1.Text;
            dim = textBox1.Text.Substring(1,4);

            if (dim == "http")
            {
                dim =  textBox1.Text;
               webBrowser1.Navigate(new Uri(dim));
            }

            else
           {
               dim = "http://" + textBox1.Text;
               webBrowser1.Navigate(new Uri(dim));
           }

          

        }


so siehts aus und funzt jezze...thx euch beiden

fehler war: er wollte nen mercedes und ich hab ihm nen golf mit aufgeklebtem stern gegeben^^

echter string geht textBox1 in string umwandeln geht also nicht...

Console.WriteLine("Einen schönen Tag wünscht euch Paddy");

J
130 Beiträge seit 2008
vor 15 Jahren

lol ^^

textbox.ToString() ^^ shice, des hätte ich gleich sehen müssen ^^

**“DOH !” -Homer Simpson**
1.696 Beiträge seit 2006
vor 15 Jahren

Hallo C#-Starter,

du musst kein new Uri(...) übergeben, der URL-String reicht auch. Außerdem


if (dim.IndexOf("http://")<0)
   dim = "http://" + dim;
webBrowser1.Navigate(dim);

ist besser 🙂

Ich bin verantwortlich für das, was ich sage, nicht für das, was du verstehst.

**:::

C
C#-Starter Themenstarter:in
12 Beiträge seit 2008
vor 15 Jahren

frage@ Jimpanse nochma

if (e.KeyCode == Keys.Enter)

das geht bei mir nicht.... ich hab mir deine struktur angesehen und das bei mir ebenfalls vor die geschweiften klammern gesetzt... da kommen nur 1000e fehlermeldungen weil er sich mit den ifs verkabbelt...

der ausdruck soll ja nur sagen dass man mit Enter bestätigen kann oder? anstelle den Button zu klicken

oder versteh ich da was falsch?

Console.WriteLine("Einen schönen Tag wünscht euch Paddy");

T
109 Beiträge seit 2008
vor 15 Jahren

e.KeyCode hast du nur bei KeyUp, Key Down (korrigiert mich fals ich falsch lieg)
im buttonOnClick gibts keyCode nicht!

Also einfach in der Textbox bei KeyDown einfügen!

Torley

C
C#-Starter Themenstarter:in
12 Beiträge seit 2008
vor 15 Jahren

ok....werd ich probieren...vielen dank

Console.WriteLine("Einen schönen Tag wünscht euch Paddy");

J
130 Beiträge seit 2008
vor 15 Jahren

frage@ Jimpanse nochma

if (e.KeyCode == Keys.Enter)

das geht bei mir nicht.... ich hab mir deine struktur angesehen und das bei mir ebenfalls vor die geschweiften klammern gesetzt... da kommen nur 1000e fehlermeldungen weil er sich mit den ifs verkabbelt...

der ausdruck soll ja nur sagen dass man mit Enter bestätigen kann oder? anstelle den Button zu klicken

oder versteh ich da was falsch?

ähhhhmmm

das if (e.KeyCode == Keys.Enter) habe ich nur drinne da ich in ne textbox die url schreib und dann nur bei drücken von Enter wird der nachfolgende Code ausgeführt, sorry das ich dich verwirrt habe, hätte ich nicht mit einpasten sollen ^^

**“DOH !” -Homer Simpson**
946 Beiträge seit 2008
vor 15 Jahren

Es wäre doch einfacher und besser, den Button als AcceptButton zu definieren, wenn die TextBox den Focus hat.
Dann spart man sich erstens den ganzen Code und man sieht es dem Button an, dass er durch Enter gedrückt werden kann.

K
147 Beiträge seit 2008
vor 15 Jahren
  
  
private void button1_Click(object sender, EventArgs e)  
        {  
            string dim = textBox1.Text;  
            dim = textBox1.Text.Substring(1,4);  
  
            if (dim == "http")  
            {  
                dim =  textBox1.Text;  
               webBrowser1.Navigate(new Uri(dim));  
            }  
  
            else  
           {  
               dim = "http://" + textBox1.Text;  
               webBrowser1.Navigate(new Uri(dim));  
           }  
  
            
  
        }  
  
  

so siehts aus und funzt jezze...thx euch beiden

fehler war: er wollte nen mercedes und ich hab ihm nen golf mit aufgeklebtem stern gegeben^^

echter string geht textBox1 in string umwandeln geht also nicht...

hi,

ich kann dir grundsätzlich nur empfehlen, wenn jemand was eingeben soll, also hier z.b. die url, dann mach unbedingt ein ".Trim()" rein. es gibt genügend leute, die "aus versehen" ein leerzeichen einfügen ..

hmm.. was mich noch wundert, ist der index von String.Substring nicht 0-basierend? wenn ja, dann solltest du warscheinlich "Substring(0,4)" schreiben!

Wer glaubt, Unternehmensberater könnten Unternehmen beraten,
der glaubt auch, Zitronenfalter könnten Zitronen falten.

C
C#-Starter Themenstarter:in
12 Beiträge seit 2008
vor 15 Jahren

kA....das hat mein chef geschrieben... der guckt ab zu ma drüber was ich so privat progge und so... er hat das geschrieben... er is VB voll pro aber c# kennter nit alle tricks^^

Console.WriteLine("Einen schönen Tag wünscht euch Paddy");

C
C#-Starter Themenstarter:in
12 Beiträge seit 2008
vor 15 Jahren

ich denk ma ich muss nit für jede frage nen neuen thread starten....is ja immer noch zum gleichen thema^^

wie kann ich dieses prob umgehen:


private void add2dial_Click(object sender, EventArgs e)
        {
            string dim = textBox1.Text;
            dim = textBox1.Text.Substring(1, 4);
            if (dim = 0 )
            { 
            
            }
            else
            {
            }

dim = 0 nimmter nich.. genau wie dim = false

ich will ja nur das er den fehler rausfischt: wenn wer nichts in die textBox1 ei gibt, dass er dieses dann auch logischerweise über den button auch nich zum speedDial added.....ich hab da grad nen denkfehler oder so

danke im vorraus

Console.WriteLine("Einen schönen Tag wünscht euch Paddy");