C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[5]: MessageBoxの文字列にリンクするには


(過去ログ 19 を表示中)

[トピック内 6 記事 (1 - 6 表示)]  << 0 >>

■8092 / inTopicNo.1)  MessageBoxの文字列にリンクするには
  
□投稿者/ ちゃんとC# (1回)-(2007/09/22(Sat) 23:28:43)

分類:[C#] 

VisualStudio2005を使っています。素人です。

一般のアプリには,よくバージョン情報のMessageBoxの中で,ホームページのURLやメールアドレスをリンク付きで
表示する例があると思います。
そのメールアドレス等をクリックすると,メーラーが開くといった,アレ,です。

ただそれがしたいと思って,あちこち,さんざん調べたのですが,わかりません。

初歩の初歩の質問だとは思いますが,お教えいただけないでしょうか。


宜しくお願いします。




引用返信 編集キー/
■8093 / inTopicNo.2)  Re[1]: MessageBoxの文字列にリンクするには
□投稿者/ Blue (349回)-(2007/09/22(Sat) 23:34:57)
メッセージボックスはもう出来上がっているものなので
それを変更しようとするとカナリの労力が必要になります。

C#だとAPIを使うためさらに面倒なことになります。


ですので、自分で似たようなFormを作ってLinkLabelを使ったほうが
はるかに簡単にできますがどうでしょうか?


どうしてもMessageBoxでってことならそれだけの知識と時間、労力を使うことを考えてみてください。


>一般のアプリ
もおそらくメッセージボックスそのものをいじっているわけではないと思います。
引用返信 編集キー/
■8094 / inTopicNo.3)  Re[2]: MessageBoxの文字列にリンクするには
□投稿者/ ちゃんとC# (2回)-(2007/09/23(Sun) 07:58:41)
No8093 (Blue さん) に返信
> メッセージボックスはもう出来上がっているものなので
> それを変更しようとするとカナリの労力が必要になります。
>
> C#だとAPIを使うためさらに面倒なことになります。
>
>
> ですので、自分で似たようなFormを作ってLinkLabelを使ったほうが
> はるかに簡単にできますがどうでしょうか?
>
>
> どうしてもMessageBoxでってことならそれだけの知識と時間、労力を使うことを考えてみてください。
>
>
> >一般のアプリ
> もおそらくメッセージボックスそのものをいじっているわけではないと思います。


ご親切にありがとうございます。
道理で,いくらHPを捜しても,その解説がみつからないわけですね。
(私の探し方のせいもあるのかもしれませんが,捜せませんでした。)

別フォームを作った方が早そうですね。

仰るやり方なら,確かにどこかに書いてあったと思います。

ありがとうございます。

引用返信 編集キー/
■8099 / inTopicNo.4)  Re[3]: MessageBoxの文字列にリンクするには
□投稿者/ ちゃんとC# (3回)-(2007/09/23(Sun) 13:17:27)
No8094 (ちゃんとC# さん) に返信
No8093 (Blue さん) に返信

Blueさんのやり方でできました。

なお,私としてはaxWindowsMediaPlayer1を,Formに貼り付けていた自作アプリに,
本件のメールアドレスのLinkのほか,そのaxWindowsMediaPlayerのバージョン情報をも取り込みたかったのです。

で,Linkの方は上手く行ったのに,axWindowsMediaPlayer1の情報Infoの方は,別Formでは取り込めません。

本体のFormでは,axWindowsMediaPlayer1のversionInfoをそのまま取り込めるのに,
別Formでは,そのlabel1にaxWindowsMediaPlayer1のversionInfoを代入しようとしましたが,上手くいきません。

そもそも,axWindowsMediaPlayer1は,コンボから貼り付けただけなので,その中身は全て自動的に
Form.Designers.csに入ってしまっていますから,
本体Formや別Form上であれこれ書き入れたりしても上手く行かず困りました。

結局,本体FormのMenuTripの"バージョン情報"のイベントの中に,別Formのlabel1を無理矢理持ち出し,それに代入しました。
(本体Form上からの別Formへの押しつけ的代入)
・・・・なお,その際,別Form.Designers.csのlabel1をinternalに書き直さないとできませんでした。


とにかく,できましたが,
果たしてこんなので良かったのかしら?


なお,反対に,本体FormのDesigners.csのaxWindowsMediaPlayerのアクセス修飾子をinternalやpublicに変えても,
別FormからはaxWindowsMediaPlayer1のversionInfoを取り込めませんでした。それはなぜ?

またまたど素人のしょーもない質問ですが,わかる方がいらしたら,お教え下さい。




引用返信 編集キー/
■8141 / inTopicNo.5)  Re[4]: MessageBoxの文字列にリンクするには
□投稿者/ ひろ (44回)-(2007/09/25(Tue) 10:57:34)
No8099 (ちゃんとC# さん) に返信

色々な方法があるのでどれが「正解」かは判らないですが…

バージョン情報ダイアログフォームに色々な情報を表示したい場合、

(1)事前に外部ファイルなどに情報を記録しておいて、バージョン情報ダイアログフォームで参照する。
(2)バージョン情報ダイアログフォームに必要な情報を渡す。
(3)バージョン情報ダイアログフォームから必要な情報を直接参照する。

など(他にもあると思うけど)が思いつきます。

(1) なら、テキストファイルでもいいし、XMLファイルでもいいし、App.Configでもいいし
とにかく外部のファイルに情報を記録しておいて、バージョン情報ダイアログフォームで
そのファイルを読み込めばいいですよね。

・何かのファイルにバージョン情報ダイアログを表示する前に情報を記入しておく。
・バージョン情報ダイアログフォームのコンストラクタでもいいし、ロードイベントでも
いいので、そこでファイルを開いて情報を取得し、ラベルなどのコントロールに設定する。

(2) なら、バージョン情報ダイアログフォームに必要な情報をメンバー変数として持ち、
プロパティを作成するなり、コンストラクタの引数にするなりで、ShowDialog() の前に
情報を渡せばいいですよね。

・バージョン情報ダイアログフォームを New する。この時、引数ありのコンストラクタを作成
したのなら New の時に必要な情報を渡す。
・プロパティを用意したのなら、New の後に、プロパティに必要な情報を設定する。
・バージョン情報ダイアログフォームを表示する。
・バージョン情報ダイアログフォームのロードイベントとかで、メンバー変数に設定されている
情報をラベルなどのコントロールに設定する。

(3) なら、バージョン情報ダイアログを呼び出した親フォーム(Parentプロパティ)の情報
として取得すればいいですよね。

・バージョン情報ダイアログフォームを表示する。
この時、自分の親を設定しておく。

例)
Form2 f2 = new Form2();
f2.Parent = this; // Form2 の親は呼び出したFormですよの意味。
f2.ShowDialog();

・バージョン情報ダイアログフォームのロードイベントなどで、自分自身の親から
欲しい情報を参照する。

引用返信 編集キー/
■8184 / inTopicNo.6)  Re[5]: MessageBoxの文字列にリンクするには
□投稿者/ ちゃんとC# (4回)-(2007/09/25(Tue) 20:26:32)
No8141 (ひろ さん) に返信
> ■No8099 (ちゃんとC# さん) に返信
>
> 色々な方法があるのでどれが「正解」かは判らないですが…
>
> バージョン情報ダイアログフォームに色々な情報を表示したい場合、
>
> (1)事前に外部ファイルなどに情報を記録しておいて、バージョン情報ダイアログフォームで参照する。
> (2)バージョン情報ダイアログフォームに必要な情報を渡す。
> (3)バージョン情報ダイアログフォームから必要な情報を直接参照する。
>
> など(他にもあると思うけど)が思いつきます。
> ・・・・

詳しくかつご丁寧にありがとうございます。


是非試してみたいと思います。

1つ1つ疑問点を解決していくのは,いいですね。
    →こんなド素人の私も,いつかかならず・・・・,てか


ありがとうございました。感謝申し上げます。



引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -