- - PR -
C# WindowsForm:カラーダイアログのカスタムカラー追加方法
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-09-04 16:28
C# Windows で、ボタンをクリックするとカラーダイアログを表示し、
色を選択するとボタンの背景色が変わるという機能を作成中です。 (1)ボタンをクリック (2)カラーダイアログ表示 (3)カスタムカラーを作成・指定してOK (4)ボタンの背景色を作成したカスタムカラーに変更 (5)ボタンを再度クリック (6)ボタンの背景色がシステムカラーにないのでカスタムカラーに追加 (7)カラーダダイアログ表示 という機能を実装したいのですが、(6)のカスタムカラーを追加で、 ボタンの背景色と同じカスタムカラーが追加されません。 見た目かなり黒い色になっています。 (6)のコードは以下のとおりです。 //////////////////////////////////////////////////////////////////// ColorDialog cd = new ColorDialog(); //[作成した色]にボタンの背景色を表示する cd.CustomColors = new int[] {this.button1.BackColor.ToArgb()}; //////////////////////////////////////////////////////////////////// CustomColorsには、どの値をセットしてやればよいのでしょうか。 | ||||
|
投稿日時: 2004-09-04 23:18
通常BackColorプロパティは透過色をサポートしません。従って、BackColor.Aの値は
常に256です。よって、そのままではToArgb()を実行することができません。 一例としては、次のようにすることができると思います。
上記のRGBメソッドはVBのRGB関数をしようしてもいいと思います。 | ||||
|
投稿日時: 2004-09-05 20:47
RGBメソッドを独自に定義していましたが、どうやら車輪の…だったようです
ColorTranslator.ToWin32メソッドが使えそうです。
| ||||
|
投稿日時: 2004-09-06 18:23
ありがとうございました。
ColorTranslator.ToWin32 で無事解決いたしました! >通常BackColorプロパティは透過色をサポートしません。従って、BackColor.Aの値は >常に256です。 たいへん勉強になりました。感謝です。ありがとうございました。 |
1