2012-01-01 28 views
4

私はVisual StudioのC#で簡単に2つの質問があります。まず、ラベルのようなものはありますか?私は自分のプログラムに複数行のテキストを入れたいと思っていますが、ワードラップをオンにしたDotNetBarラベルでしか行えないようです。テキスト領域とハイパーリンク?

第2に、リンクラベルを使用せずにテキストの途中でハイパーリンクを作成する方法はありますか? 「更新が利用可能なようなテキストを生成したい場合は、http://example.comをダウンロードしてダウンロードしてください!」、テキストの途中にリンクラベルを置かずにリンクをクリック可能にすることは可能ですか?

+1

Webアプリケーション? Windowsアプリケーションですか? –

答えて

4

あなたはLinkLabelを使用し、そのLinkAreaプロパティを設定することができます。

//LinkArea (start index, length) 
myLinkLabel.LinkArea = new LinkArea(37, 18); 
myLinkLabel.Text = "An update is available, please visit http://example.com to download it!"; 

上記の通常のテキストの残りながらhttp://example.comリンクを行います。

コメントに編集: リンクを処理する方法はさまざまです。 1つの方法は、リンクに説明(URL)を付け、Process.Startを使用してURLを起動することです。

myLinkLabel.LinkArea = new System.Windows.Forms.LinkArea(37, 18); 
myLinkLabel.LinkClicked += new LinkLabelLinkClickedEventHandler(myLinkLabel_LinkClicked); 
myLinkLabel.Text = "An update is available, please visit http://example.com to download it!";  
myLinkLabel.Links[0].Description = "http://example.com"; 

とイベントハンドラの記述を読んで、サイトを起動することができます:私はあなたがWindowsアプリケーションではなく、Webアプリケーションをやって使用していると仮定

void myLinkLabel_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) 
{ 
    Process.Start(e.Link.Description); 
} 
+0

ありがとうございます。クリックするとリンクが機能しません。また、kishorejangidが述べたように、autoresizeプロパティをfalseに設定して複数行にすることができるように答えを更新できますか? – mowwwalker

+0

答えを更新しました。 – keyboardP

0

を。

C#では、通常のテキストボックスをフォームにドラッグアンドドロップし、そのプロパティを複数行に変更して読み取り専用にすることができます。それは私がいつもしていることです。

リンクラベルなしでテキストにリンクを追加する場合。テキストボックスにリンクを追加する方法があります。 http://www.codeproject.com/KB/miscctrl/LinkTextBox.aspx/

1

通常のラベルを使用してAutoSizeプロパティをfalseにすることができます。 そして、あなた自身でそれをラップするあなたの幅と高さを調整してください

2

あなたはRichTextBoxコントロールを試してみてください。

string text = "This is the extract of text located at http://www.google.com and http://www.yahoo.com"; 
richTextBox1.Text = text; 

richTextBox1.ReadOnly = true; 
richTextBox1.LinkClicked += (sa, ea) => 
{ 
System.Diagnostics.Process.Start(ea.LinkText); 
}; 
+0

ありがとうございますが、リッチテキストボックスの白い背景が欲しくないので、透明に変更することはできません。 – mowwwalker

+1

@Walkerneo - はい、透明に変更できません。 richTextBox1.BackColor = this.BackColorを設定します。 (親制御のバックグラウンド) – adatapost

関連する問題