tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルリソースファイルにカスタムカーソル
記事No9978
投稿日: 2010/03/12(Fri) 07:04
投稿者ねむひめ
VB2008 Express Editionで開発しています。

ピクチャーボックスをスクロールさせる際、所謂「手のひらにぎにぎ」カーソル
でスクロールをする機能を作ったのですが、肝心のカスタムカーソルの変更が出
来なくて悩んでいます。

PictureBox1.Cursor = New System.Windows.Forms.Cursor(...)

・・・では、直接カーソルファイルのパス名を指定して利用できる事はわかった
のですが、リソースファイルに独自カーソルファイルを入れ、またそれを利用す
る方法がわかりません。

どうぞご教授ください、宜しくお願いします。

[ツリー表示へ]
タイトルRe: リソースファイルにカスタムカーソル
記事No9979
投稿日: 2010/03/12(Fri) 09:10
投稿者花ちゃん
> のですが、リソースファイルに独自カーソルファイルを入れ、またそれを利用す
> る方法がわかりません。

  My.Resources.リソースファイルにあるファイル名 の事でしょうか?
  ( My.Resources.mouse32 等 )
リソースファイルにあるファイル名 とは、メニューのプロジェクト→***のプロパティ→
リソース タブ をクリックした時に表示されているファイル名です。

My.Resources. のように手入力で打って行けば、インテリジェンス機能で表示されます。

[ツリー表示へ]
タイトルRe^2: リソースファイルにカスタムカーソル
記事No9981
投稿日: 2010/03/12(Fri) 16:54
投稿者ねむひめ
VB6のリソースエディタではカーソルの追加が出来たのですが、VB2008ではMyProjectの
リソースタブでは「カーソル」カテがなく、「ファイル」カテに入ってしまいます。
そこから取り出して利用する方法がよくわからないのです。

PictureBox1.Cursor = New System.Windows.Forms.Cursor(My.Resourses.MyCustomCursor)

・・・では、動かないのです。
VB6のように、コントロールにMouseIconプロパティが無いので、リソースに入れてカス
タムカーソルを使うのかなと思っているのですが、もっと簡単に埋込されたカスタムカー
ソルを設定出来る方法というのはあるのでしょうか?

[ツリー表示へ]
タイトルRe^3: リソースファイルにカスタムカーソル
記事No9982
投稿日: 2010/03/12(Fri) 17:32
投稿者Hongliang
ファイルとして追加された場合、Resources.*** は Byte() を返してきますから、
それを使って MemoryStream を New し、New Cursor の引数にすればいいでしょう。

[ツリー表示へ]
タイトルRe^4: リソースファイルにカスタムカーソル
記事No9983
投稿日: 2010/03/12(Fri) 17:56
投稿者ねむひめ
Dim b As Byte() = My.Resources.MyCustomCursor
Dim mcc As New System.IO.MemoryStream(b)

PictureBox1.Cursor = New System.Windows.Forms.Cursor(mcc)


これで無事出来ましたー
本当にありがとうございました

[ツリー表示へ]
タイトルRe^2: リソースファイルにカスタムカーソル
記事No9984
投稿日: 2010/03/12(Fri) 20:19
投稿者魔界の仮面弁士
# 細かい突っ込み

> My.Resources. のように手入力で打って行けば、インテリジェンス機能で表示されます。

IntelliSense (インテリセンス)ですよね。
intelligence (インテリジェンス)だと、機密情報という意味になってしまいます。

[ツリー表示へ]
タイトルRe^3: リソースファイルにカスタムカーソル
記事No9985
投稿日: 2010/03/13(Sat) 07:19
投稿者花ちゃん
> intelligence (インテリジェンス)だと、機密情報という意味になってしまいます。

あ! またまた、やらかしてましたか?
インテリジェンス=知性。知能。理解力 の方が頭にあったものですから。

http://hanatyan.sakura.ne.jp/dotnet/Excel08.htm こちらは、[インテリセンス]を
使っていたのですが...。

----------------------------------------------------------------------
ついでに、アイコンならそのまま取得できるので、アイコン形式のカーソルを使って
(こちらなら、カラー表示の問題がないようです。)
Dim ico As Icon = My.Resources.CursorIco
Dim cur As Cursor = New Cursor(ico.Handle)
PictureBox1.Cursor = cur

[ツリー表示へ]