今だけ人気マンガ100円レンタル特集♪

VB.NETを使っていますが、Label.text=color.redと色指定を記述するパターンをcolor.redの部分に変わってhex値で指定する方法をご存知ないでしょうか。DBから抽出したカラー情報が10進数で書かれています。
まずこれを16進数に直す必要があると思いますが・・・
宜しくお願いいたします

このQ&Aに関連する最新のQ&A

A 回答 (1件)

こんばんわ。

hersheと申します。

私はVB6.0ユーザですが、VBで16進数の値を扱う場合、"&HFFFFFF"のように頭に"&H"を付けて使用しています。
ですのでラベル(Labelってラベルですよね??(^^;))のフォントカラーを設定する場合は、
  Label.ForeColor = "&HAAAAAA"
この様に設定します。
10進数から16進数に直してから設定する場合は、HEX関数を使用して
  Label.ForeColor = "&H" & Hex(11184810)
と記述できます。色は上記のものと同じになるはずです。

以上ですが、これはVB6.0での話しなのでもしかしたら参考にならないかもしれません(^^;

確認なのですがVB.NETの場合は、LabelのTextプロパティにカラーを設定するとフォントの色を変えられるのでしょうか?だとしたらVB6からすると随分と変わってしまったのですね・・・。
今後.NETの回答をする場合は気を付けるようにします。
    • good
    • 0
この回答へのお礼

お返事有難うございました。
どうもARGBでそれぞれ指定すると可能みたいでした。

お礼日時:2002/09/14 07:49

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qラベルの文字色変更

VBでラベルの文字色を透明から黒に徐々にしたいと思ってるんですけど。

For文で作ってみたものの・・・
エラーがでて困っています。
作ってみたFor文を以下に書きます。

For i = 255 To 0 Step -2
Label1.ForeColor = RGB(i, i, i)
Next

この文の中の RGB(i,i,i) というところがエラーでます。。

どうしたら徐々に色を変化させれるのか教えてください!

Aベストアンサー

デバッグ作業の際には、Forの内部で。。。等々の、不要な(正常に動作している)個所をそぎ落としていって、最終的にエラー発生の最終的なポイントを特定する事が肝要です。

たとえば、ループの内外関係なく以下の一文だけでも同様のエラーが発生します。
Label1.ForeColor = RGB(0, 0, 0)

そこで、RGB関数をヘルプで引くと、Integerを返す関数です。

そのうえで、エラーメッセージと突合せると、ForeColorはsystem.drawing.color型なので、Integer型を設定できないという意味だと読み取れます。
※「値をsystem.drawing.colorに変換できません」=自動変換できない型の値を代入しようとしています、程度に意訳できます。

それではRGB関数同様に色を指定して、system.drawing.color型の値を作成するにはと言うと
system.drawing.colorをヘルプで引くと、FromArgbというメソッドが見つかります。

という事で、以下のように書きなおせばOK
Label1.ForeColor = RGB(i, i, i)

Label1.ForeColor = Color.FromArgb(i, i, i)

デバッグに必要な切り分け方、ヘルプの情報の当たりの付け方を書いてみました。

ちなみに、#2で書いたように意味のあるコードにする為にはというのを、VB2010で書くと以下の通り

Dim i As Integer
Dim j As Integer

For i = 255 To 0 Step -2
Label1.ForeColor = Color.FromArgb(i, i, i)
'フォームを再描画してラベルの色変えを画面上に反映させる
Me.Refresh()

'徐々に色が変わっていく様子を見せる為に、待機処理をする
'待機時間はループ回数で調整する
For j = 0 To 1000
Application.DoEvents()
Next
Next

デバッグ作業の際には、Forの内部で。。。等々の、不要な(正常に動作している)個所をそぎ落としていって、最終的にエラー発生の最終的なポイントを特定する事が肝要です。

たとえば、ループの内外関係なく以下の一文だけでも同様のエラーが発生します。
Label1.ForeColor = RGB(0, 0, 0)

そこで、RGB関数をヘルプで引くと、Integerを返す関数です。

そのうえで、エラーメッセージと突合せると、ForeColorはsystem.drawing.color型なので、Integer型を設定できないという意味だと読み取れます。
※「値をsystem.d...続きを読む

QForm間の値の渡し方

1つのForm上のコマンドボタンで別のFormを表示、そこで変数に値を入れ、そのFormを閉じ、元のFormでその変数を使いたいのですが、どうもうまくいきません。
実施したやり方は、一方のFormの宣言領域で、”Public abc As String”を宣言、両方のFormの(変数に値を入れた方と変数を使う方の)プロシージャーの宣言では引数として(abc As String)と記述しました。
因みに、両プロシージャーともイベントプロシージャーです。何か基本的なことができていないのだとは思いますが、どなたか教えていただけませんか?よろしくお願いします。

Aベストアンサー

すでに何件か回答があがっていますので、少し変わった方法をご参考までに。

あまり使われませんが、Formにはtagというプロパティがあります。
これは「文字列形式であれば何でも格納できる」という、上手く使えば便利なプロパティです。

FormAからFormBを呼び出し、FormBで変更した値をFormA.tagにセットします。
ここでFormBをUnloadしてもFormA.tagの値は影響を受けないので自由に使えます。

複数の値を呼び出し元に戻してやる場合に、区切り文字(カンマなど)で連結した文字列をtagに格納し、呼び出し元で区切り文字でsplitして、複数の値を受け渡すという手法をよく使っています。

QDataGridViewで指定したセルの値を取得

こんにちは。

VB2008のDataGridViewで指定したセルの値を取得をする方法がわかりません。
どなたか教えてください。

Aベストアンサー

こんばんは.

 Dim Data As String
 Data = Me.DataGridView(0, 2).Value
 MsgBox(Data)

みたいな感じで取れないですかね???

QVB.NETでラベルの大きさってどうやって変えるの?

VB.NETでラベルの大きさってどうやって変えるの?
バージョンは2008

Aベストアンサー

あれ?
普通に
Widthプロパティ
http://msdn.microsoft.com/en-us/library/system.windows.forms.control.width%28VS.100%29.aspx
やHeightプロパティを変更すればできるはずだけど、コード、IDE問わず。
http://msdn.microsoft.com/en-us/library/system.windows.forms.control.height%28VS.100%29.aspx

#まぁAutoSizeプロパティをfalseにしないと、Textプロパティに代入された文字列を格納するのに必要な最低限の大きさに自動で調整されちゃうみたいだけど。
http://msdn.microsoft.com/en-us/library/system.windows.forms.control.autosize.aspx

Qvb.netで画面のコントロールId名を変数で動的に制御し処理する方法

以下のような処理がしたいです。
実現方法をご存知でしたらご教授下さい。

画面のコントロールText1~Text3があります。
For~Nextでこのコントロールに値をセットしたいです。

For i = 1 To 3
  Texti.Text = i
  ※このiのTextの後ろのiの部分を1~3と動的に変更し、各Textに値を設定したいです。
Next

Aベストアンサー

こんにちは、webでは、findcontrolを使うみたいです。

いかに、参考URLから、引用すると
***********************************
Dim L, U, i As Integer
Dim tx As System.Web.UI.WebControls.TextBox
L = LBound(dat)
U = UBound(dat)
For i = L To U
'コントロール名を探し出す
tx = FindControl("TextBox" & CStr(i))
'見つかったコントロールのTextプロパティに代入
tx.Text = dat(i)
Next

******************引用終わり*******
このようにすると良いみたいです。
asp findcontrolで、検索すると、
結構ヒットするみたいです。

参考URL:http://natchan-develop.seesaa.net/

QVB.NETで他のプロジェクトで作成したフォームを使う方法

こんにちは。
VB.NETのプロジェクトがぐちゃぐちゃで参照設定とかいろんなの呼んでしまっているので、新しく作成しなおしたいのですが、
新しいプロジェクトでプロジェクトを作成し、前のプロジェクトで必要なファイル(.vb、RESX)を新しいプロジェクトのフォルダにコピーしたのですが、
普通のモジュールは追加>新しい項目の追加でなんとか追加できたのですが、フォームの追加の仕方がわかりません><教えてくださいー

P.S. RESXファイルってフォームのデータが入ってるのでしょうか?そんな気がしてコピーしたのですが。

※VB6.0からVB.NETに以降した際にアップデート情報みたいなのがプログラム上にくっついてしまって.vbファイルも参照項目も増えまくってしまった

Aベストアンサー

ドラッグ&ドロップが使いやすい。
Windowsのエクスプローラでvbファイルをドラッグして、VS.NETのソリューションエクスプローラへドロップする。

QVB.NETが学習できるようなサイト知りませんか?

こんにちは。
自分は現在、仕事でVB.NETを扱うために参考書を使って学習中です。
上の人からは、「とりあえず、関数とか制御構造とか、基本的なことをおさえといて」と言われました。でも、持ってる参考書だけではなんだか物足りないです。サンプルでもいいから、もっとたくさんコーディングしてみたいと思っています。
参考書を買わなくても手軽に勉強したいと思ったので、そういうサイトをご存知の方がいらっしゃれば教えていただきたいのですが。
よろしくお願いいたします。

Aベストアンサー

図書館に行くと結構いろんな本がありました。無料ですし、あまり借りる人もいないのでいつでも貸出可です(笑)
サンプル作品的なものは下のサイトに何個かあるみたいです^^

http://www.mitene.or.jp/~sugisita/vbnet_smp.html
http://jeanne.wankuma.com/tips/
http://133.53.64.43/tonoike/computer/vb/sampleindex.asp
http://anetm.com/dev/tools/vbdotnet/
http://www.ujihara.jp/iTextdotNET/ja/examplesvb.html

QTextBox内で違う色の文字を表示したい

最近Visual Basicをはじめました。最新?のVB2008EEをダウンロードして色々頑張っています。
テキストボックスに文字を表示する時、
例えば
あいうえお(黒)さしすせそ(赤)とか違う色で続けて表示する方法はありますか?
例)
RichTextBox1.Text = RichTextBox1.Text + (str & ht & vbCrLf)
↑のhtの部分だけ赤とか。

VBは素人なので質問内容が不鮮明かもしれませんがご理解の上、宜しくお願いします。

Aベストアンサー

テキストボックスの文字の部分的な色分けは、できませんが
RichTextBoxならできます。
SelectionColorプロパティで、いかがでしょうか

QCloseとDisposeの違い

みなさまこんばんわです。よろしくお願い申し上げます。

VB.NET 2008でコーディングしています。
CloseとDisposeの違いについて教えていただきたいのです。

これらのメソッドは、開いたファイルを閉じるときなどにも使いますが、今回お尋ねするのは、フォームを閉じるとき、しかも、自ら呼び出すとき(Me.Close() と、Me.Dispose() )のみに限ったこととしてお話しさせていただきます。

たとえば、ShowDialog() で呼び出したフォームは、そのフォーム内でMe.Close() しても、プロセスは残り、たとえば、タイマーコントロールのイベントに記述していますと、それは実行され続けます。

これを防ぐために、Me.Dispose() を使います。すると、きれいにプロセスは終了し、イベントは発生しない模様です。

そこで、「フォームを閉じる」意味のMe.Close() をすべてMe.Dispose() に変えてしまいました。確実にプロセスを破棄出来ると思ったからです。Webで調べると、違いは「再利用できる、できないの違い」という答えがありましたが、それはきっと、ファイルやオブジェクトのことで、フォームの場合は、再びShowまたはShowDialogで表示させることは可能でしたので、特に問題は感じていませんでした。

ところが、アプリケーション設定で、「最後のフォームを閉じるとき」にアプリケーションがシャットダウンする設定になってるのに、シャットダウンしてくれないことが起こりました。調べてみると、Me.Dispose() が原因。Me.Close() に変えるとうまくいきました。

わけわからなくなってきました。。。

ちなみに、その残ったフォームは、スタートアップフォームであり、別のフォームからShowまたはShowDialogメソッドで呼び出したものではありません。

ここで4つの仮説を立ててみました。

1. ShowDialogで呼び出したフォームは、Me.Dispose()、Showで呼び出した、あるいは、スタートアップフォームは、Me.Close() すれば破棄できる

2. ShowDialogで呼び出したフォームは、Me.Dispose()、スタートアップフォームは、Me.Close()、Showで呼び出したフォームは、どちらでも、破棄できる

3. 呼び出し方ではなく、別の要因が存在する

4. 併記する必要がある場合がある

Me.Close()
Me.Dispose()

または、

Me.Dispose()
Me.Close()



どれが正しいのでしょうか?どなたがご存じの方がいらっしゃいましたら、ご教授いただけませんでしょうか? どうぞよろしくお願い申し上げます。ありがとうございました。

みなさまこんばんわです。よろしくお願い申し上げます。

VB.NET 2008でコーディングしています。
CloseとDisposeの違いについて教えていただきたいのです。

これらのメソッドは、開いたファイルを閉じるときなどにも使いますが、今回お尋ねするのは、フォームを閉じるとき、しかも、自ら呼び出すとき(Me.Close() と、Me.Dispose() )のみに限ったこととしてお話しさせていただきます。

たとえば、ShowDialog() で呼び出したフォームは、そのフォーム内でMe.Close() しても、プロセスは残り、たとえば、...続きを読む

Aベストアンサー

Me.Close()
Me.Dispose()
は根本的に違うものです。

formについて、Close()メソッドはフォームの表示を終了させるメソッドです。

ほかのクラスも同様。すべてのDispose()メソッドについて、これはインスタンスの破棄を明示的に行うものです。

>再利用できる、できないの違い

Dispose()はインスタンスが破棄されるため、再びコンストラクタを用いて、インスタンスを生成しないいけません。

一方Close()はインスタンスが残っているので、それを利用することができます。

>1. ところが、アプリケーション設定で、「最後のフォームを閉じるとき」にアプリケーションがシャットダウンする設定になってるのに、シャットダウンしてくれないことが起こりました。調べてみると、Me.Dispose() が原因。
Me.Close() に変えるとうまくいきました。

通常はどちらでもうまくいきます。

>2. ShowDialogで呼び出したフォームは、Me.Dispose()、スタートアップフォームは、Me.Close()、Showで呼び出したフォームは、どちらでも、破棄できる

ShowDialogの場合は、メソッド内部で、ハンドルが破棄されているため、Close()メソッドの際にDispose()メソッドが呼び出されます。

>3. 呼び出し方ではなく、別の要因が存在する

そう思います。

>4. 併記する必要がある場合がある

インスタンスを明示的に破棄したほうがよい場合は多く存在します。
Disposeが使えるメンバはIDisposableをインターフェースとして持っているメンバです。
これらのメンバは、外部とのやり取りを行うものが多くあります。
たとえばSQLClientに含まれるようなメンバです。

外部とのコネクションを確実に破棄を保障してほしいなどという場合がありますよね、このようなときに使用します。

Using構文を使用するのとまったく同じ理由になります。
正確にはUsing構文を使用できるメンバには条件があります、IDisposableをインターフェースとして持っているメンバに限るというものです。

ほかにもガーベージコレクタによるファイナライズを伴うかどうかという違いがあります。
Disposeの場合はファイナライズが同時に行われるため、使用していたメモリ空間を開放することができます。

上記のような理由により、
Me.Close()
Me.Dispose()
は両方書いたほうがよいと思います。

蛇足ですが、
Me.Dispose()
Me.Close()
はエラーになります。
Me.Dispose()により、Me本体(インスタンス)は削除されてしまいます。
存在しないMeに対してCloseメソッドを要求することはできないためです。

Me.Close()
Me.Dispose()
は根本的に違うものです。

formについて、Close()メソッドはフォームの表示を終了させるメソッドです。

ほかのクラスも同様。すべてのDispose()メソッドについて、これはインスタンスの破棄を明示的に行うものです。

>再利用できる、できないの違い

Dispose()はインスタンスが破棄されるため、再びコンストラクタを用いて、インスタンスを生成しないいけません。

一方Close()はインスタンスが残っているので、それを利用することができます。

>1. ところが、アプリ...続きを読む

Q文字列の後ろから必要分だけ削除したい。

例1 Dim str As String = "あいうえお1234"

文字列の中の1234だけ削除したい場合は、
str = str.Remove(5,4)
という風に、5文字目の後から4文字削除にすればよいのですが、

例の"あいうえお"の部分の長さが毎回処理する度に異なる場合は、
文字列の頭から何文字目という指定ができないので、”後ろから4文字を削除したい”となります。その場合は、どのようなプロパティを使えばいいのでしょうか。

.NET環境です。

Aベストアンサー

Length(str)で文字数を取得できますので、後ろから4文字目は先頭から何文字目かは計算できると思いますが、どうでしょうか?


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング