Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C++CLI / VB .Net / .Net-Framework » Probleme mit LinkLabel

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
08.03.2007, 11:08 Uhr
~theolmue
Gast


Hallo,
ich benutze das LinkLabel-Steuerelement, um dem Benutzer die Möglichkeit zu geben eine Internetseite zu öffnen. Das LinkLabel ist ganz normal mit dem Designer auf das Form gelegt worden. Den Konstruktor des Forms habe ich dann wie folgt ergänzt:


Code:
      public Form1(string Text, string Link, int LinkStart, int LinkLaenge)
      {
         this.InitializeComponent();
         this.linkLabel.LinkBehavior = LinkBehavior.AlwaysUnderline
         this.linkLabel.Text = Text;
         if (Link == null)
            Link = "";
         if ((LinkLaenge < 0) || (LinkLaenge > Text.Length))
            LinkLaenge = Text.Length;
         if ((LinkStart < 0) || (LinkStart > LinkLaenge))
            LinkStart = 0;
         this.linkLabel.LinkArea = new LinkArea(LinkStart, LinkLaenge);



Dummer Weise funktioniert das nicht. Es lässt sich kein Teil des LinkLabel anklicken (das Ereignis LinkClicked wird nicht ausgelöst) und es ist auch kein Teil unterstrichen (LinkBehavior.AlwaysUnderline).

Alternativ habe ich schon folgenden Code mit dem selben Ergebnis ausprobiert:


Code:
      public Form1(string Text, string Link, int LinkStart, int LinkLaenge)
      {
         this.InitializeComponent();
         this.linkLabel.LinkBehavior = LinkBehavior.AlwaysUnderline
         this.linkLabel.Text = Text;
         if (Link == null)
            Link = "";
         if ((LinkLaenge < 0) || (LinkLaenge > Text.Length))
            LinkLaenge = Text.Length;
         if ((LinkStart < 0) || (LinkStart > LinkLaenge))
            LinkStart = 0;

         this.linkLabel.Links.Clear();
         LinkLabel.Link lnk = new LinkLabel.Link(LinkStart, LinkLaenge, Link);
         lnk.Description = Text;
         lnk.Name = "lnkName";
         lnk.Enabled = true;
         this.linkLabel.Links.Add(lnk);
         this.linkLabel.Enabled = true;
      }



Was funktioniert ist, wenn ich Text und LinkArea im Designer erstelle und somit fest verdrahte. Ich kann aber keinen Grund erkennen, warum das so ist. Allerdings ist das nicht das was ich benötige. Wer kann mir weiter helfen?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
08.03.2007, 12:36 Uhr
Uwe
C/C++ Master
(Administrator)


Hallo,
Wieso übergibst Du die Variablen im CTor? Wozu verwendest Du die Variable Link?
Quick & dirty:

C++:
public Form1()
        {
            InitializeComponent();
            string Text = "www.fun-soft.de";
            int LinkStart = 0;
            int LinkLaenge = Text.Length;
            linkLabel.LinkBehavior = LinkBehavior.AlwaysUnderline;
            linkLabel.Text = Text;
            linkLabel.LinkArea = new LinkArea(LinkStart, LinkLaenge);
        }

private void linkLabel_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            Process.Start(linkLabel.Text);
        }


--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe

Dieser Post wurde am 08.03.2007 um 12:38 Uhr von Uwe editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
09.03.2007, 17:54 Uhr
~theolmue
Gast


Hallo Uwe,
ich übergebe die Werte im Konstruktor, weil ich das Form mehrfach verwende, jedoch je nach Einsatzort einen anderen Link haben will.

Die Variable Link enthält die www-Adresse, die ich aufrufen will, während Text ein ansprechender Text ist, den der Benutzer zu sehen bekommt. Eigendlich speichere ich diesen Wert in einer Variable des Forms, aber in dem Codesnippet habe ich vergessen das mit einzufügen. ;-)

Funktioniert Dein Code so bei Dir? Ich sehe nämlich keinen echten Unterschied zwischen Deinem und meinem Konstruktor (mein Code 1) und der funktioniert nicht!
Gruß Markus
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
09.03.2007, 18:35 Uhr
Uwe
C/C++ Master
(Administrator)


Hallo Markus,
Ja das funktioniert. Hab nochmals mit .Links.Add(); getestet. Selbes Ergebnis.
Wo es Probleme gibt ist der Aufruf des Weblink. Wenn der Standardbrowser geschlossen ist, gibt es einen Fehler, ist er bereits geöffnet wird der Fehler nicht geworfen. Die Ursache hab ich jedoch "noch" nicht untersucht.
--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C++CLI / VB .Net / .Net-Framework ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: