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