Entwickler-Ecke

WinForms - Hyperlink im Label


nullplan001 - Fr 02.06.06 09:41
Titel: Hyperlink im Label
Hi all,
mal wieder eine blöde Frage: Wie kann ich in einem Label einen Hyperlink vereinbaren? Also konkret will ich auf einem Splash-Screen den Hinweis anzeigen, dass mein Programm unter der GNU GPL veröffentlicht wurde. Da ich an dieser Stelle aber nicht die ganze GPL hinschreiben will, möchte ich einen Hyperlink auf http://www.gnu.org/licenses/gpl.html noch mit dort rein setzen. Selbstverständlich kommt noch eine Datei namens "COPYING" in die Distribution mit rein, aber die liest sich ja eh kein Mensch durch, und die Lizensierung ist erst gültig, wenn im zu lizensierenden Objekt ein Verweis darauf steht. Glaub ich zumindest...
Achso, von wegen und "machs doch im Installer"... klar, wenn ich einen bräuchte. Alles, was mein Programm vorraussetzt, ist .NET 2.0, was in jedem gut geführten Windows-Haushalt zu finden sein sollte. Weil ich auch nicht garantieren kann und will (was die GPL sogar ausdrücklich verbietet. Ich muss mein Programm frei distributierbar machen), dass das Prog von meiner HP gesaugt wird (wo ich vorher noch die GPL einschieben könnte), muss ich es so, oder über einen Verweis im MainForm lösen. Ich ziehe den Splash-Screen jedoch vor. Den kann man nämlich als Kompo wiederverwerten ;) .
Tschö,
nullplan


Christian S. - Fr 02.06.06 09:54

Einfach ein Linklabel auf die Form und in dessen OnClick:

C#-Quelltext
1:
Process.Start(@"http://www.entwickler-ecke.de");                    


nullplan001 - Fr 02.06.06 10:40

Hi,
danke für die Antwort. Ich werde es mal testen.
Tschö,
nullplan
Edit: Tja, ich kriege nur ein "Unknown Identifier 'Process'". Die MSDN-Suche ist bei .NET auch nicht sonderlich auskunftsfreudig. Ich will doch nur einen Prozess starten. Ist das zuviel verlangt. *hrmpf* Also den Code krieg ich nicht kompiliert. Was mache ich falsch?

Constructor (Chrome)
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
constructor SplashForm;
begin
    lGPL := new Label;
    lHref := new Label;
    
    lGPL.Text := 'Dieses Programm steht unter den Bedingungen der GNU GPL.';
    lGPL.Location := new Point(20,20);
    lGPL.ForeColor := Color.Black;
    lGPL.BorderStyle := BorderStyle.None;
    
    lHref.Text := 'http://www.gnu.org/licenses/gpl.txt';
    lHref.Location := new Point(50,50);
    lHref.ForeColor := Color.Blue;
    lHref.Font.Style := FontStyle.Underlined;
    
    StartPosition := FormStartPosition.CenterScreen;
    ClientSize := new Size(80,80);
    
    Controls.Add(lGPL);
    Controls.Add(lHref);
    
    lHref.Click += new EventHandler(lHref_Click);
end;


OnClick (Chrome)
1:
2:
3:
4:
method lHref_Click(ob: Object; e : EventArgs);
begin
    Process.Create(@'http://www.gnu.org/licenses/gpl.txt');
end;

Da ist doch nix falsches dran, oder? Ich kriege aber in der gehighlighteten Zeile den Fehler mit unknown Identifier.
An Assemblies binde ich ein: System, System.Drawing und System.Windows.Forms. Also das Standardpaket für GUI-Anwendungen in .NET. Muss da noch was dazu?


nullplan001 - Mi 06.12.06 16:36

Fehler erkannt: Das @. Und ich brauche System.Diagnostics. Dann geht es.
Tschö,
nullplan


Kha - Do 07.12.06 13:33

user profile iconnullplan001 hat folgendes geschrieben:
Die MSDN-Suche ist bei .NET auch nicht sonderlich auskunftsfreudig.
Ich muss mich ernsthaft fragen, ob du dort überhaupt gesucht hast, denn eine Suche nach "Process" bringt schon als ersten Eintrag einen Volltreffer. Und selbst in diesem Forum hast du wohl auf die Suche verzichtet, sonst hättest du diesen [http://www.c-sharp-forum.de/viewtopic.php?p=323293#323293] Post gefunden.

PS: Nicht das @ ist der Fehler sondern die Hochkommata.


Christian S. - Do 07.12.06 13:44

user profile iconKhabarakh hat folgendes geschrieben:
PS: Nicht das @ ist der Fehler sondern die Hochkommata.
Er nutzt Chrome, nicht C# ;-)


Kha - Fr 08.12.06 14:50

Whoops :angel: . Wobei ich zugeben muss, dass ich mir ohne Nachschauen nicht einmal sicher gewesen wäre, ob Chrome Escape-Sequenzen kennt oder nicht.