リンクを表示して、ブラウザにアクセスさせたい。
でも、簡単には行きません。
別の Form や Window を書いて仕舞った方が早い様で ... 。
最近、とあるプログラムのフロントエンドを書いていました。
はい。
CUI の もの なので、ファイルを扱う そのもの は、
どうしても、長い(パス)名称のファイルが出て来ると、
タイプミスに翻弄されたりもします。
ひと昔なら、これしか無かったのですが、
GUI に慣れて仕舞った身としては、しんどい! ですねぇ。
で、使うかどうか分からない(利用頻度の低そうな)CUI のプログラムに対して、
GUI の フロントエンドを書いて置こう!、と言う次第です。
ある程度、書き進めて、気付くのは、
将来、環境を変えた時に、フロントエンドである事を忘れて実行すれば、
エラーに見舞われる!、と言う予測です。
バックエンドが存在してこそのフロントエンドな訳で。
ちゃんと、バックエンドとなる そのプログラム が導入されていれば、
そんなエラーとご対面になる筈も無いのですが、
将来の自分は ... 分かりませんよね。 何を仕出かす か?。
そこで、メッセージボックスを設置し様としたのですが、
どうせ、表示させるなら、
インストールやダウンロードを誘導するべく、
そのサイトの URL を埋め込み、リンクへジャンプする方が親切ですね。
最悪、元ファイル紛失時に再度入手の可能性だってある筈です。
リンク切れの心配は、別にして、ですが ... 。
勿論、そのサイトからダウンロードしたファイルは保存してある訳ですが、
かと言え、それを自前のプログラムに添付するのは、
避けた方が良さそうですし ... 。 個人利用なら、まだしも ... 、です。.
其処で、直面するのが、メッセージボックスにリンク表示! です。
既成のソフトで しばしば 見掛ける そのスタイル は ... 簡単では無かった ... 。
別に、Form や Window を用意し、其処にリンクを LinkLabel 等を置くのが簡単です。
忘れそうなので、此処に、書き残しましょう。
Form の例で行きます。
Form を新たに追加し、 PictureBox 1つ LinkLabel 1つ Label 2つ Button 1つ を配置します。
コード部分はこれです。 Visual Studio 2017 VB.net
Public Class Form3
Private Sub Form3_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Me.Text = "<App Title> Error!"
Me.Label1.Text = "This is Message ..." & vbCrLf &
"More ..."
Me.PictureBox1.SizeMode = PictureBoxSizeMode.Normal
Me.PictureBox1.Image = SystemIcons.Error.ToBitmap()
Me.LinkLabel1.Text = "Show Text For Linked URL"
Me.Label2.Text = ""
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Me.Close()
End Sub
Private Sub LinkLabel1_LinkClicked(sender As Object, e As LinkLabelLinkClickedEventArgs) Handles LinkLabel1.LinkClicked
Me.LinkLabel1.LinkVisited = True
Process.Start("http://www.example.com/")
'http://www.example.com/
'Example Domain
' This domain Is established to be used for illustrative examples in documents.
' You may use this domain in examples without prior coordination Or asking for permission.
' refer to ietf rfc2606 https://tools.ietf.org/html/rfc2606
Me.Label2.Text = "Opened The Site by Web Browser."
End Sub
End Class
はい。
此処では、エラーとして表示させるので、 その旨の指定になっています。
もし、情報表示やコンタクト用にする場合は、適宜、変更して下さい。
SystemIcons には、
Application / Asterisk / Error / Exclamation / Hand / Information / Question / Shield / Warning / WinLogo
がありますね。 内容的には重複や変更がある様ですが ... 。
LinkLabel は単なる Label で URL の情報を持っている訳では無いのですね。
LinkLabel の イベントハンドラ がそれを処理します。 その中で初めて URL が登場します。
.html の書き方、
<a href="http://www.example.com/">Show Text For Linked URL</a>
とは違います。.
此処では、ブラウザを指定せず、OS に既定アプリを探させています。
尚、 http://www.example.com/ は架空の URL で、例示用説明用に用意されたものです。
実際にアクセスが可能な URL となります。
詳細に関しては https://tools.ietf.org/html/rfc2606 をご覧下さい。
LinkLabel がクリックされると、Label2 に文字を表示しています。 図 はその前の状態です。.
0 件のコメント:
コメントを投稿