• ベストアンサー

C#で背景色の設定 (0xFFC0DBなど)

データベースに登録されている値(0xFFC0DB)を使って、 テキストボックスの背景色を設定したいと思っています。 = Color.Pink; = Color.FromArgb(0xFF, 0xC0, 0xCB); などは出来るのですが、0xFFC0DBをそのまま(?)使った方法が分かりません... ご存じの方がいらっしゃいましたら、教えていただけないでしょうか? ---- int test; testColor = データベースの値; TextBox.BackColor = testColor;

質問者が選んだベストアンサー

  • ベストアンサー
  • AlexSuns
  • ベストアンサー率67% (78/115)
回答No.4

#3間違えました orz int test; testColor = Convert.ToInt32("0xFFC0DB", 16); TextBox.BackColor = Color.FromArgb( testColor );

noname#251034
質問者

お礼

AlexSunsさんのコードに、アルファチャネルの値を追加したところ、 うまく設定することが出来ました。 (もっといいやり方があるのかもしれませんが^^;) int testColor; testColor = Convert.ToInt32(データベースの値, 16); TextBox.BackColor = Color.FromArgb(0xFF, Color.FromArgb(testColor)); 回答ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (3)

  • AlexSuns
  • ベストアンサー率67% (78/115)
回答No.3

これでいいのかな int test; testColor = Convert.ToInt32("0xFFC0DB", 16); TextBox.BackColor = testColor;

全文を見る
すると、全ての回答が全文表示されます。
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.2

Color.FromArgb(Int32)のオーバーロードをつかってやればいいのでは? TextBox.BackColor = Color.FromArgb( testColor ); といった具合ですが …

noname#251034
質問者

お礼

#3,4 のAlexSunsさんのコードを参考にさせて頂きました。 回答ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • NYOI
  • ベストアンサー率58% (56/96)
回答No.1

MSDNを参照すれば分かると思いますが、Colorのメソッドとしてはintのみを引数として色を返すものは用意されていません。 自前で色を返すメソッドを作成するしかないでしょう。

noname#251034
質問者

お礼

#3,4 のAlexSunsさんのコードを参考にさせて頂きました。 回答ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • textboxの背景色を10進数から設定

    VB.NETで10進数「16711680(&HFFFF)」(R:255,G:255,B:0)の数字からテキストボックスの背景色に設定するにはどうしたらよいのでしょうか? textbox.backcolor=color.argb(&h00ffff) とすると 「このコントロールは透明な背景色をサポートしません。」 というエラーが出ます。

  • 【C#】ラベルのダブルクリックについて

    初めて質問させていただきます。C#初心者です。よろしくお願いします。 開発環境はMicrosoft Visual C# 2008です。 現在、UserControl1を作成して、label1にはテキストを入れています。 ・label1をクリックすると、パネル(panel1)の背景色を変更。 ・label1をダブルクリックすると、他のラベル(atai_text)にlabel1内のテキストを代入。 ↑上記2つの処理をしたいのですが、クリックの方は処理できているのですが、ダブルクリックは反応せず、どのように作成すればよいかがわかりません。 <UserControl1.csの一部> private void label1_Click(object sender, EventArgs e) { if (this.label1.BackColor == Color.Pink) { this.panel1.BackColor = Color.FromArgb(0xFF, 0xFF, 0x80); } else { this.panel1.BackColor = Color.Pink; } } private void label1_DoubleClick(object sender, EventArgs e) { this.atai_text.Text = this.label1.Text; } どなたかご教授よろしくお願いします。

  • TextBoxに入力したカラーコード

    チェックボックスをクリックするとカラーパレットが出てきて色を選び「OK」を押すとテキストボックスの背景の色を変えてカラーコードを表示させるコードが下なんですが private void checkBox1_CheckedChanged(object sender, EventArgs e) {     ColorDialog colorDialog1 = new ColorDialog(); if (colorDialog1.ShowDialog() == DialogResult.OK) { Color ColorCode = colorDialog1.Color; textBox1.BackColor = ColorCode; textBox1.ForeColor = Color.FromArgb(0xFF - ColorCode.R, 0xFF - ColorCode.G,                                 0xFF - ColorCode.B); string strColor = "#" + ColorCode.R.ToString("X2") + // Red(赤) を16進数2桁表示 ColorCode.G.ToString("X2") + // Green(緑)を16進数2桁表示 ColorCode.B.ToString("X2"); // Blue(青) を16進数2桁表示 textBox1.Text = strColor; } } private Brush b5 = new SolidBrush(Color.ColorCode); とした場合「ColorCode」の定義がありませんと出ます。上のプログラムで選んだカラーコードをどうやれば(Color.ColorCode)に入れることができるのでしょうか? ご教授お願いします。

  • TextBoxにExcelの背景色を取得

    こんにちは、VB2008を使用しています。 TextBoxにExcel内の文字と、その文字が入っているセルの背景色を取得しようとしています。文字の取得は TextBox1.Text = sheet.Range("A1").Value で出来るのですが、背景色の取得は TextBox1.BackColor = の = 以降がわかりません。どなたか教えて頂けなしでしょうか?

  • 色を定数にしたいのですが

    お世話になります。VB2005での質問です。 画面のコントロールのバックカラーをコードで変更しようと思っています。 そこで、そのたびごとにRGBの数字を入力するのは面倒なので 定数に入れておきたいのですが、その方法がわかりません。 VB6.0のときは、 Public Const CLR_YELLOW = "&H00C0FFFF" とモジュールに設定しておき 画面では TextBox1.BackColor = CLR_YELLOW で色を設定することができました。 上記のコードをVB2005にアップグレードしてみましたが、ますます複雑になってしまいました。 TextBox1.BackColor = System.Drawing.ColorTranslator.FromOle(CInt(CLR_YELLOW)) 現在はよくわからないので、いちいち下記のように書いています。 TextBox1.BackColor = Color.FromArgb(255, 255, 192) 「Color.FromArgb(255, 255, 192)」の部分を定数に設定するには どうしたらよろしいでしょうか。 よろしくお願いいたします。

  • テキストボックスに入力した色に背景色を変える

    教えてください。 テキストボックスに入力されたカラーコード又はカラーネームに背景色を変更させたいのですが、onchangeを使えばいいのはわかるのですが、入力された値をどうやって表示されるかよくわかりません。ボタンを使って変更させるのはわかるのですが…。 よろしくお願いいたします。

  • C#のループでtextboxに値を入れる方法

    Nameが textbox1 textbox2 ... textbox10 と10個のtextboxがあったとして、 このそれぞれのtextに値を入れたいのですが、 1個ずつ書くのではなく、forとかで入れることは出来ますか? たとえば以下のように、ループで○の部分を変更していくことは可能なのでしょうか? for (int i=1; i<=10; i++) { textbox○.text = i.ToString(); } よろしくお願いします。

  • C言語について質問なんですが((。繰り返しを指示するプログラムがどうも

    C言語について質問なんですが((。繰り返しを指示するプログラムがどうも上手くいきません・・・ C言語について質問なんですが((。繰り返しを指示するプログラムがどうも上手くいきませんorz。詳しい方是非応援に(TAT)! 今打ち込んでいるとこなんですがどうもうまくいかなくて(orz どんな内容かといいますとテキストボックス1に入力した数値を テキストボックス2に入力した回数分掛けた値をもとめ テクストボックス3に出力するものです 例えばテクストボックス1に「13」と入力し、テクストボックス2に「2」と入力したら 169とテクストボックス3に出力したいのですが上手くいかなくて。。。 for(i=0;i<b;i++)この後に繰り返しの式を書かなければと思うのですが・・・それも思いつかず(TAT) っていうか他に2~3個方法があるのですがこの for(i=0;i<b;i++)があっているのかもわからず・・・orz 是非、是非力をかしてください! ちなみにプログラムはこんな感じになってます↓ private void button5_Click(object sender, EventArgs e) { //2の0乗=1 //2の1乗=1*2*2=2 //2の2乗=1*2*2=4 //2の3乗=1*2*2*2=8 //2の4乗=1*2*2*2*2*=16 int a, b, c,i; //入力 //textboxの数値を変数aに入力 a = int.Parse(textBox1.Text); //↑がわからに場合数字のドキュメントで数値入力を確認 //textbox2の数値を変数bに入力 b = int.Parse(textBox2.Text); //処理 //cに1を代入 //b回繰り返す //cにaを掛ける c = 1; //出力 //求めた答えをtextbox4に出力 textBox3.Text = c.ToString(); for(i=0;i<b;i++) { }}

  • C#でテキストボックスをクリック→フォームが開く→フォームで設定した値

    C#でテキストボックスをクリック→フォームが開く→フォームで設定した値を元のテキストボックスに入力 こんな感じのことをC#でやりたいのですがよくわからないので教えてください。 1. 親をForm1、子をForm2とします 2. Form1のTextBox1をクリックするとForm2が開いきます 3. Form2で設定した値をForm2の「入力」ボタンを押すとForm2が閉じてTextBox1に値が入力されます というものです。 ここで、textBoxは「クリックしたコントロール名を取得してForm2に渡したい」のです。 テキストボックスがたくさんあるので、textBox1とか決まった名前ではありません。 この部分がわからないのです。 ------------------------------------------------------- Form1: private void textBox1_Click(object sender, EventArgs e) {  Form2 fromItem = new Form2(sender);  DialogResult deRet = fromItem.ShowDialog(); } Form2: public Form2(object sender) {  InitializeComponent();  object pSender = sender; } private void button_input_Click(object sender, EventArgs e) {  ((System.Windows.Forms.TextBox)pSender).text = "hoge"; } ------------------------------------------------------- この程度しかわかりません。 正しい方法を教えてください。よろしくお願いいたします。

  • 条件に該当したテキストボックスの名前を(2)

    前回 http://okwave.jp/qa/q6556269.html で テキストボックスの名前をメッセージボックスに表示する方法(VBA)を 教えて頂いたのですが新たにわからない事がでてきてしまったので 質問させて下さい><自力で解決しようとしたのですがどうしてもできなくて… Accessのバージョンは2003です。 フォームに伝票番号と得意先コードの2つの入力フィールド (テキストボックス)があります。 やりたいことは、以下のようなことです。 伝票番号は100未満の数値でなくてはならず、 得意先コードは1以上かつ10未満でなくてはなりません。 もし、上記の条件に該当しない場合はテキストボックスの色を 黄色に変更させます。 そうしたら黄色に変更されたテキストボックスだけの名前を メッセージボックスに表示させます。 前回教えて頂いたVBAを追記して動かしたところ どちらか片方がエラーの場合はテキストボックスの名前が メッセージボックスに表示されるのですが、 2つともエラーの場合、メッセージボックスが2回表示され 1つのメッセージボックスに1つの名前しか表示されません。 記述したVBAでは正常な動作だと思うのですが、 これを1つのメッセージボックスに黄色のテキストボックスの 名前をいっぺんに表示させたいのですが、 どのようにすれば宜しいでしょうか。 良かったらご教授お願いします!>< 現在記述しているVBAは以下になります。 ---------------------------------------------------------------- Private Sub 閉じる_Click() 'フォーム上のコントロールを格納する変数 Dim ctrl As Control 'フォーム上のすべてのコントロールに対しての繰り返し処理 For Each ctrl In Me.Controls '取得したコントロールがテキストボックスかどうか If ctrl.ControlType = acTextBox Then '伝票番号の値が100未満の場合 If Me!txtNo <= 100 Then '背景をピンクに Me!txtNo.BackColor = vbMagenta Else '背景を黄色にして値を元に戻す Me!txtNo.BackColor = vbYellow End If '得意先コードの値が1以上かつ10未満の場合 If Me!txtCode <= 10 And Me!txtCode >= 1 Then '背景をピンクに Me!txtCode.BackColor = vbMagenta Else '背景を黄色にして値を元に戻す Me!txtCode.BackColor = vbYellow End If End If Next ctrl Me.Undo 'フォーム上のすべてのコントロールに対しての繰り返し処理 For Each ctrl In Me.Controls 'テキストボックスのコントロールを取得 If TypeOf ctrl Is TextBox Then '取得したコントロールが黄色だった場合 If ctrl.BackColor = vbYellow Then 'メッセージボックスに名前を表示 MsgBox ctrl.Name End If   End If Next ctrl End Sub

このQ&Aのポイント
  • SwitchだけWiFiがつながらない。スマホなどはつながりますがSwitchだけ何度やってもつながりません。考えられる原因や解決策を教えて下さい。
  • SwitchのWiFi接続ができないトラブルについて。スマホなどのデバイスは正常に接続できるが、Switchのみがつながらない状況です。問題の原因や解決策について教えてください。
  • SwitchのWiFi接続に問題が発生しています。スマホなどは正常に接続できますが、Switchだけがつながらず困っています。どのような原因が考えられ、どのように解決すればいいのか教えてください。
回答を見る