vb.netでタスクトレイに数値を表示したいと思っています。数値はプログラムから定期的に変化して表示するようにしたいです。


簡単なサンプルをごぞんじでしょうか。

教えてください。

回答の条件
  • URL必須
  • 1人2回まで
  • 13歳以上
  • 登録:2010/12/01 22:40:51
  • 終了:2010/12/08 22:45:02

回答(2件)

id:mj99 No.1

mj99回答回数138ベストアンサー獲得回数382010/12/03 19:59:55

ポイント35pt

タスクトレイには16x16のアイコンしか設置できないのですが、

「その場でアイコンをつくる」という方法を実現するのはどうでしょうか。


----

フォームにTextBox1とButton1が設置してあり、

Button1のクリックで、TextBox1の文字をタスクトレイアイコンにします。


Public Class Form1

    Private trayIcon As New NotifyIcon

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'タスクトレイ初期表示
        trayIcon.Text = "タスクトレイテスト"
        trayIcon.Icon = New Icon(Me.Icon, 16, 16)
        trayIcon.Visible = True
    End Sub

    Private Sub Form1_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
        trayIcon.Visible = False 'タスクトレイ消去
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim oldIcon As Icon = trayIcon.Icon '今のアイコン

        Dim br As New SolidBrush(Color.Black) '色
        Dim ft As New Font("MS ゴシック", 9) 'フォント
        Dim bm As New Bitmap(16, 16) '描画域
        Dim gr As Graphics = Graphics.FromImage(bm)

        gr.DrawString(TextBox1.Text, ft, br, 0, 0) 'テキスト描画
        trayIcon.Icon = Icon.FromHandle(bm.GetHicon()) '新アイコンを設置する
        oldIcon.Dispose() '古いアイコンを捨てる

        gr.Dispose()
        bm.Dispose()
        ft.Dispose()
        br.Dispose()

    End Sub

End Class


フォント、色、位置など、適当に調節してください。

NotifyIconオブジェクトさえあれば、フォームは無くても実装できます。

http://homepage1.nifty.com/rucio/main/dotnet/ClassLibrary/L004_S...

id:heke2mee No.2

heke2mee回答回数162ベストアンサー獲得回数432010/12/02 00:54:09

ポイント35pt

アイコンでいいのならフォームにNotifyIcon とTimerを貼り付けて

NotifyIcon の名前 NotifyIcon1

Timer の名前 Timer1

Interval を1000 (適当です)


Public Class Form1
    Private flag As Integer = 0

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        NotifyIcon1.Icon = GetIcon(flag)
    'フラグの切り替え
        flag = 1 - flag

    End Sub

    Private Function GetIcon(ByVal flag As Integer) As Icon

        '現在実行しているAssemblyを取得する
        Dim asm As System.Reflection.Assembly
        asm = System.Reflection.Assembly.GetExecutingAssembly()

        'リソースファイル名が"Resource1.resources"だとする
        Dim rm As New System.Resources.ResourceManager( _
            asm.GetName().Name + ".Resource1", asm)

        Dim img As Icon
        If flag = 0 Then
            img = CType(rm.GetObject("アイコン1"), Icon)
        Else
            img = CType(rm.GetObject("アイコン2"), Icon)
        End If

        GetIcon = img
    End Function

End Class

アイコンだと1桁の数値ぐらいしか見えないので

値が変わったらアイコンをアニメーションさせて

バルーンで表示したほうがいいかも


タスクトレイにアイコンとバルーンを表示する

http://codezine.jp/article/detail/421


タスクトレイのアイコンをアニメーション表示する

http://dobon.net/vb/dotnet/control/animatetasktrayicon.html

  • id:taknt
    タスクトレイに表示できるのって アイコンだけだっけ?
    0から9までのアイコンを作って それを 切り替えて表示すればいいんじゃないかな。
  • id:heke2mee
    アイコンでの方法ですので、駄目な場合は開かないでください

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません