DOBON.NET DOBON.NETプログラミング掲示板過去ログ

VBでバルーンチップを表示させるには

環境/言語:[WinXP Pro SP2,VB.NET 2003,.NET Framework 1.1]
分類:[.NET]

Visual Basic .NET 2003で開発をしているのですが、バルーンチップを表示させることに苦労しています。
.NETでは標準で、NotifyIconがありますが調べてみたところこれだとバルーンチップを
表示させることはできないようでしたので、別の方法を探していました。

そして、VB6で開発されたActiveXのNotifyIconコントロール(http://entiapage.com/souko/control.html)という物を見つけました。

しかし、これも.NETでは利用できないようで実際にコードを書いてやっては見たのですが
「オブジェクト参照がオブジェクト インスタンスに設定されていません。」と言うエラーになり
実際には動作しません。その際は参照設定でNotifyIconControlを追加し、

Dim NotifyIcon1 As NotifyIconControl.NotifyIconClass

MsgBox(NotifyIcon1.IsNewVersion())

という感じで動作確認をしていました。動作させてみると、NotifyIcon1 = Nothing となってしまっているようです。

まだまだ、VBをさわり始めたばかりでそれほど経験を積んでいるわけではないのでなにか間違ったことを
しているのかもしれませんが、何らかの方法でVBでバルーンチップを表示できればと思い書き込みをさせてもらいました。

なにか良い方法があれば教えていただければ幸いです。
よろしくお願いします。
こんにちは、じゃんぬ です。

■No12143に返信(TATSUYAさんの記事)
> しかし、これも.NETでは利用できないようで実際にコードを書いてやっては見たのですが
> 「オブジェクト参照がオブジェクト インスタンスに設定されていません。」と言うエラーになり実際には動作しません。

単純にインスタンス化されていないだけだと思います。
> 単純にインスタンス化されていないだけだと思います。

以下の方法を試してみたのですが次のようなエラーになってしまいます。

Dim NotifyIcon1 As New NotifyIconControl.NotifyIcon
とすると、「NotifyIconControl.NotifyIconClass.Private Sub New()は'Private'であるため、このコンテキストではアクセスできません。」

という形になってしまいます。
インスタンス化するにはこのような方法で良いと思うのですが、間違っている箇所があるのでしょうか。

よろしくお願いいたします。
2005/08/12(Fri) 18:16:06 編集(投稿者)

どうもです。

NotifyIconコントロール(http://entiapage.com/souko/control.html)
は全然詳しくないですが,TATSUYAさんはVS.NET2003で開発されているのですよね?
NotifyIconを使っているサンプルのプロジェクトを『ファイル→変換』で
.NET2003のコードに変換した結果はどんな感じでしたでしょうか。
>New()は'Private'であるため、このコンテキストではアクセスできません。
つまり間違ってその形で New されないように外部に公開されてないという事ですね。
>インスタンス化するにはこのような方法で良いと思うのですが
思うじゃなくて使用法はサイトのどっかかヘルプに書いてあるものだ
と思いますが?正しい使用法を読んでから使ってはどうですか?
> インスタンス化するにはこのような方法で良いと思うのですが、

ActiveX DLLではなく、ActiveXコントロールですよね?
ツールボックスの方から選択して、フォームに貼って使う物でしょう。

なので、Newするのであれば、NotifyIconControl の方ではなく、
Visual Studio.NETが自動生成する、AxNotifyIconControl の方だと思います。


ただし、これが.NET上で動作するかは未検証なので分かりません。
■No12195に返信(なおこ(・∀・)さんの記事)

> NotifyIconコントロール(http://entiapage.com/souko/control.html)
> は全然詳しくないですが,TATSUYAさんはVS.NET2003で開発されているのですよね?
> NotifyIconを使っているサンプルのプロジェクトを『ファイル→変換』で
> .NET2003のコードに変換した結果はどんな感じでしたでしょうか。

変換を行うと、PictureBoxなどで.NETでサポートされていないプロパティやメソッドがあるため、
あまり詳しくは見ていませんでした。

■No12198に返信(魔界の仮面弁士さんの記事)
>>インスタンス化するにはこのような方法で良いと思うのですが、
>
> ActiveX DLLではなく、ActiveXコントロールですよね?
> ツールボックスの方から選択して、フォームに貼って使う物でしょう。
>
> なので、Newするのであれば、NotifyIconControl の方ではなく、
> Visual Studio.NETが自動生成する、AxNotifyIconControl の方だと思います。

その通りのようです。ツールボックスからフォームに貼り付けたところAxNotifyIconControlが作成され
Newすることもできました。

No12197のるしぇさんにも言われたように根本的に利用方法を間違っていたようです。

ただ、それでもうまく動作しないためこれ以上はこのActiveX コントロール固有の問題だと思いますので
ここで解決とさせてもらいます。

みなさんありがとうございました。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板