- PR -

Windowsアプリケーションでのヘルプの提供

投稿者投稿内容
moondog
大ベテラン
会議室デビュー日: 2003/04/11
投稿数: 165
投稿日時: 2006-01-26 12:14
お世話さまです。

VB.NET2003+Windowsフォームでの話です。

HelpProviderコンポーネントを使って、あらかじめ作成したヘルプ
(.htmファイル)を各画面で表示したいのですが、コントロールに
フォーカスを当ててからF1キーの押下で表示させるのではなく、
コントロールのクリックイベントで表示させたいのです。

例えば、『ヘルプ』と書いたButtonコントロールが画面上にあり、
このButtonコントロールをクリックすれば当該.htmファイルが
表示されるようにしたいのです。

つまり、ButtonコントロールのClickイベント内部でF1キー押下
のイベントを発生させるやり方をご教示願いたいのですが…

ポップアップヘルプによる表示も考えたのですが、
最大化・最小化ボタンはフォームに必要なので
この方法を選びました。

以上、宜しくお願い致します。

じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-01-26 13:10
たとえ、F1 キーを Send したとしても、
Button をクリックした時点で ActiveControl が変わってしまうため、
クリック前にフォーカスがあったコントロールに対応したヘルプは表示されません。

強行で実現するというのであれば、とても泥臭い実装になります。
本当にそのような仕様で良いのでしょうか?

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
MMX
ぬし
会議室デビュー日: 2001/10/26
投稿数: 861
投稿日時: 2006-01-26 13:28
右上の?マークを落とす 方式は?
moondog
大ベテラン
会議室デビュー日: 2003/04/11
投稿数: 165
投稿日時: 2006-01-26 13:30
こんにちは。

早速のレス、ありがとうございます。

>Button をクリックした時点で ActiveControl が変わってしまうため、
クリック前にフォーカスがあったコントロールに対応したヘルプは表示されません。
なるほどー、おっしゃる通りですね。^^;

現状ではPDFファイルをヘルプとして表示してるのですが、
これが起動に時間がかかるため、何か良い方法はないか
と考えた次第です。

.htmファイルをパス指定で表示できればそれでも構わないのですが、
どのようにすればよいのかが解りませんで…
moondog
大ベテラン
会議室デビュー日: 2003/04/11
投稿数: 165
投稿日時: 2006-01-26 13:34
MMXさん、こんにちは。

レス、ありがとうございます。

その方法もトライしてみたのですが、?を右上に出すためには
最大化と最小化ボタンを犠牲にしないとダメですよね?

最大化・最小化ボタンも残したままで?を表示できれば問題は
解決なんですが…
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-01-26 13:47
引用:

moondogさんの書き込み (2006-01-26 13:30) より:

なるほどー、おっしゃる通りですね。^^;
現状ではPDFファイルをヘルプとして表示してるのですが、
これが起動に時間がかかるため、何か良い方法はないかと考えた次第です。


2 回目以降ならそんなに気にならなくなりませんか?
というか、現状はどのきっかけで起動するのかが判らないわけですが...w

引用:

.htmファイルをパス指定で表示できればそれでも構わないのですが、
どのようにすればよいのかが解りませんで…


手動で表示するにしても、前のコントロールを保持しないといけませんよね?
どうしてもやりたいですか?

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-01-26 13:53
引用:

moondogさんの書き込み (2006-01-26 13:30) より:

.htmファイルをパス指定で表示できればそれでも構わないのですが、
どのようにすればよいのかが解りませんで…


もしかして、ですけど...
これって、こういう意味ではないですよね?

コード:

    ' 参照 -> 他のプログラムを起動する
    Private Sub HelpButton_Click(...) Handles Button1.Click
        System.Diagnostics.Process.Start("D:\MakiMakiLove.html")
    End Sub


前のレスは、そのコントロールに合ったパスという解釈で書き込みました。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
moondog
大ベテラン
会議室デビュー日: 2003/04/11
投稿数: 165
投稿日時: 2006-01-26 15:03
PDFの起動の方は確かに初回以降は早いのですが、
どーしても初回の遅さがユーザに不評で許してもらえず…orz

>これって、こういう意味ではないですよね?
そういう意味でした。w

これならわざわざフォームにHelpProviderコンポーネント
を貼り付ける必要もないですね。

ありがとうございます、非常に助かりました。

スキルアップ/キャリアアップ(JOB@IT)