C# 入門 & 実践 / C sharp
5-6. RadioButton / GroupBox / LinkLabel - ラジオボタン -
ラジオボタンを3つ使用し、選択して、リンクをクリックすると選択したURLを表示するものを作成。
1. RadioButton
ラジオボタンをグループ化するには、GroupBoxを利用し、その中に複数ラジオボタンを配置します。
(グループが一つで良い場合は、そのまま配置してもOK?でもわかり難い。)
これだけで自動的にRadioButtonの配置はOKです。
2. LinkLabel
リンクをクリックしたときの動作を LinkClicked に設定
private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
// リンククリックしたことにする
linkLabel1.LinkVisited = true;
string myurl = null;
// グループボックスのなかのラジオボタンを確認
foreach (object o in groupBox1.Controls)
{
RadioButton ro = o as RadioButton;
if (ro != null && ro.Checked)
{
myurl = ro.Text;
}
}
if (myurl != null)
{
// 関連付けられたソフトを起動する!
System.Diagnostics.Process.Start("http://" + myurl);
}
}
あっさり出来ましたね。
これだけでは寂しいので LinkLabel をもう少し使ってみます。
LinkLabel を追加して
Textを
Copyright (C) 2006 tech.bbtune.com. All Rights Reserved.
とします。これだと全部リンクになってしまうので
プロパティのLinkAreaから一部だけを選択します!
この状態で
linkLabel2 に初期状態でリンク設定を行います。
Csharpを追記して、2個目のリンクを設定した。
今まで Form1.Designer.cs の InitializeComponent() 内に記載していましたが
プロパティを編集すると全部変わってしまうので!
Form1.csの中に MyInit() を作成しそこに書くよう変更した。
public Form1()
{
InitializeComponent();
MyInit();
}
private void MyInit()
{
this.linkLabel2.Text = "Copyright (C) 2006 tech.bbtune.com Csharp. All Rights Reserved.";
this.linkLabel2.Links[0].LinkData = "tech.bbtune.com";
this.linkLabel2.Links.Add(35, 6, "tech.bbtune.com/csharp/");
}
クリック時の操作を記載。
private void linkLabel2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
// 呼ばれたリンクをVisitedに変更。
linkLabel2.Links[linkLabel2.Links.IndexOf(e.Link)].Visited = true;
string target = e.Link.LinkData as string;
System.Diagnostics.Process.Start("http://" + target);
}
完成^-^。
さっきは外部ブラウザを開いていましたが
webBrowser コントロールを使用してみましょう!
単純に配置して
System.Diagnostics.Process.Start("http://" + target);
から以下のように変更
// 内部ブラウザに表示する!
webBrowser1.Url = new Uri("http://" + myurl);
webBrowser1.Update();
簡単に出来ました^-^。
5-5. ListBox / ComboBox - リストボックス / コンボボックス - «
5. Windows アプリケーション »
5-7 . PictureBox , ToolTips, ProgressBar でスライドショー。
C# 入門 & 実践 / C sharp