2011-06-18 6 views
1

Visual C#.NET:C#ColorDialogでどの色を選択できるのかを指定するにはどうすればよいですか?

色のダイアログを作成し、ユーザーがいくつかの色(特にコマンドプロンプト/バッチファイルで使用できる色)を選択できるようにしたいと考えています。これはどうですか?どのようにユーザーが選択できる色を制限できますか?

また、新しいフォームで開くのではなく、メインフォームにとどまるように、カラーダイアログを「ドッキング」する方法はありますか?

答えて

4

これはあなたがしたいことでしょうか?

private void ShowColorDialog() 
    { 
     ColorDialog cd = new ColorDialog(); 
     cd.CustomColors = new int[] { ToInt(Color.Red), ToInt(Color.Blue), ToInt(Color.YellowGreen) }; 
     cd.SolidColorOnly = true; 
     cd.ShowDialog(); 
    } 

    static int ToInt(Color c) 
    { 
     return c.R + c.G * 0x100 + c.B * 0x10000; 
    } 

私はあなたがカラーダイアログをドッキングできないと思います。

+0

追加のカスタムカラーを設定するだけではありませんか?私はそれが標準色の表示や選択を抑制するとは思わない。 – itowlson

+0

@itowlson:まあ、忘れてしまった作品:単色だけを表示するように質問を編集しました! –

0

以下は、あなたの場合のColorDialogコントロールの便利なプロパティの一部です。しかし、彼らのどれもあなたの義務を満たしていません。あなたのカスタムカラーリストを使用して独自のダイアログボックスを作成する必要があると思います。

AllowFullOpen - ユーザーがカスタムカラーを選択できるかどうかを指定します。

CustomColorsカスタムカラー - ユーザーが選択したカスタムカラーのコレクション。

FullOpen - カスタムカラーの選択に使用された部品を自動的に開くかどうかを指定します。

ユーザーは独自のカスタムカラーセットを作成できます。これらの色は、色を作成するために必要なARGBコンポーネント(アルファ、赤、緑、青)の値で構成されるInt32に含まれています。カスタムカラーは、AllowFullOpenがtrueに設定されている場合にのみ定義できます。したがって、CustomColorsを設定して他のものを制限することはできません。

関連する問題