tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルカラー(赤 緑 青)
記事No9067
投稿日: 2009/06/11(Thu) 10:06
投稿者VB
VB2008
WinXp
----------------------------------------------------------------------
        ' 初期選択する色を設定する
        CommonDialog1Color.Color = Text1.BackColor
        ' ダイアログを表示する
        If CommonDialog1Color.ShowDialog = DialogResult.OK Then
            Text1.ForeColor = CommonDialog1Color.Color
        End If
----------------------------------------------------------------------
上記のように、色の選択画面であるテキストボックスの色を変えているのですが。
このプログラムの後に、指定した色の[赤] [緑] [青]を数値で取得したいのですが。
どのように書けば、それぞれの値が取得できるのでしょうか?(0〜255の数値)

'???・・・取得した値
Red.text = CStr(???)
Green.text = CStr(???)
Blue.text = CStr(???)

[ツリー表示へ]
タイトルRe: カラー(赤 緑 青)
記事No9068
投稿日: 2009/06/11(Thu) 10:58
投稿者YuO
> 上記のように、色の選択画面であるテキストボックスの色を変えているのですが。
> このプログラムの後に、指定した色の[赤] [緑] [青]を数値で取得したいのですが。
> どのように書けば、それぞれの値が取得できるのでしょうか?(0〜255の数値)

System.Windows.Forms.Control.ForeColorプロパティはSystem.Drawing.Color型ですから,
R, G, Bの各プロパティから取得できます。

MSDN: Control.ForeColor プロパティ (System.Windows.Forms)
http://msdn.microsoft.com/ja-jp/library/system.windows.forms.control.forecolor.aspx
MSDN: Color 構造体 (System.Drawing)
http://msdn.microsoft.com/ja-jp/library/system.drawing.color.aspx
MSND: Color.R プロパティ (System.Drawing)
http://msdn.microsoft.com/ja-jp/library/system.drawing.color.r.aspx

[ツリー表示へ]
タイトルRe^2: カラー(赤 緑 青)
記事No9069
投稿日: 2009/06/11(Thu) 11:01
投稿者VB
YuOさんへ。
ありがとうございました。
--------------------------------------------------------
    Dim wkBackColor As System.Drawing.Color
        wkBackColor = CommonDialog1Color.Color
        '[赤]&[緑]&[青]を代入
        RedTxt.Text = CStr(wkBackColor.A)
        GreenTxt.Text = CStr(wkBackColor.G)
        BlueTxt.Text = CStr(wkBackColor.B)
--------------------------------------------------------
自分は、今回こんな感じにしてみました。

[ツリー表示へ]
タイトルRe^3: カラー(赤 緑 青)
記事No9070
投稿日: 2009/06/11(Thu) 11:20
投稿者花ちゃん
>         RedTxt.Text = CStr(wkBackColor.A)
>         GreenTxt.Text = CStr(wkBackColor.G)
>         BlueTxt.Text = CStr(wkBackColor.B)
> --------------------------------------------------------
> 自分は、今回こんな感じにしてみました。

それでうまく取得できましたか?

# VB6.0 の方はどうなりましたか? 
 ここで質問されるなら、質問する前にTips 集や過去のログを調べてからに
 して下さい。

[ツリー表示へ]
タイトルRe^4: カラー(赤 緑 青)
記事No9072
投稿日: 2009/06/11(Thu) 11:38
投稿者VB
> それでうまく取得できましたか?
取得出来てますけど・・・。

> # VB6.0 の方はどうなりましたか? 
VB2008でコーディングしているので、VB6.0では行っていません。

>  ここで質問されるなら、質問する前にTips 集や過去のログを調べてからに
>  して下さい。
調べましたけど、見つかりませんでした。
ワード検索って思ったとおりの言葉でほしいものに
出くわしにくいような気がします・・・。
「カラー」とか「RGB」、「commondialogcolor」とかで調べたんですけどね。

[ツリー表示へ]
タイトルRe^5: カラー(赤 緑 青)
記事No9075
投稿日: 2009/06/11(Thu) 16:05
投稿者YuO
> > それでうまく取得できましたか?
> 取得出来てますけど・・・。

本当ですか?
赤・青・緑の各色について試しましたか?
また,コードは正しく掲示板に書き込んでいますか?


> ワード検索って思ったとおりの言葉でほしいものに
> 出くわしにくいような気がします・・・。
> 「カラー」とか「RGB」、「commondialogcolor」とかで調べたんですけどね。

まずはColorDialog.ColorなりTextBox.ForeColorを探すと思うのですが……。

探し方。
・使っているのがTextBoxなのだから,TextBoxを検索します
MSDN: TextBox クラス (System.Windows.Forms)
http://msdn.microsoft.com/ja-jp/library/system.windows.forms.textbox.aspx
・ForeColorプロパティを使っているのだから,ForeColorプロパティを表示します
MSDN: TextBox プロパティ (System.Windows.Forms)
http://msdn.microsoft.com/ja-jp/library/system.windows.forms.textbox_properties.aspx
MSDN: TextBox.ForeColor プロパティ (System.Windows.Forms)
http://msdn.microsoft.com/ja-jp/library/system.windows.forms.textbox.forecolor.aspx
・ControlのものとTextBoxBaseのものの二つが候補に出てきたので,両方確認します
MSDN: Control.ForeColor プロパティ (System.Windows.Forms)
http://msdn.microsoft.com/ja-jp/library/system.windows.forms.control.forecolor.aspx
MSDN: TextBoxBase.ForeColor プロパティ (System.Windows.Forms)
http://msdn.microsoft.com/ja-jp/library/ez1ywchy.aspx
・両クラスの「クラス」のページを確認します
MSDN: Control クラス (System.Windows.Forms)
http://msdn.microsoft.com/ja-jp/library/system.windows.forms.control.aspx
MSDN: TextBoxBase クラス (System.Windows.Forms)
http://msdn.microsoft.com/ja-jp/library/system.windows.forms.textboxbase.aspx
・継承階層を見ると,TextBoxBaseの方がスーパークラスなので,Control.ForeColorを棄却します
MSDN: TextBoxBase.ForeColor プロパティ (System.Windows.Forms)
http://msdn.microsoft.com/ja-jp/library/ez1ywchy.aspx
・プロパティの型がColorなので,Colorを表示します
MSDN: Color 構造体 (System.Drawing)
http://msdn.microsoft.com/ja-jp/library/system.drawing.color.aspx
・解説に,
>アルファ、赤、緑、または青の各色の要素を決定するには、それぞれ A、R、G、または B の各プロパティを使用します。
とあるので目的が達成されます。

実際に上記の通りに探すことはまずないのですが,
手順として書くと上記のようになります。
知っていれば間を飛ばせますから。

No.9068の記事の場合だと,まず「System.Drawing.Color.R」ありきで,
そこから逆向きに肉付けしていっています。
そのために,TextBoxBase.ForeColorではなくControl.ForeColorと書いてしまっています。
# このあたりは完全に知識の世界。
# Control.ForeColorは知っていた物の,TextBoxBase.Colorは知らなかった。

[ツリー表示へ]
タイトルRe^6: カラー(赤 緑 青)
記事No9077
投稿日: 2009/06/11(Thu) 16:57
投稿者VB
詳しいご説明ありがとうございました。
確かにあれは、間違っていましたね(^^;
以後気をつけます。

[ツリー表示へ]