MESCIUS MultiRow for Windows Forms 12.0J
色の設定と取得

GcColorPickerCell色の設定と取得の方法について、以下に解説します。    
エディタに入力する
GcColorPickerCellのエディタに直接、色の名前、あるいはARGB値を入力することができます。セルは入力された内容を自動的に色の書式に変換します。
  • GcColorPickerCellのエディタに値を入力するにはDropDownStyleプロパティにDropDownを設定する必要があります。

色の書式変換の詳細について、以下の表で説明します。

入力値 説明
文字列 既知の色の名前と一致すればその色の名前(UseColorNameプロパティがTrueに設定されている場合)に、またはRGB値(UseColorNameプロパティがFalseに設定されている場合)に変換します。大文字と小文字は問いません。
例:"red" -> (Red)、"WHITE" -> (White)、"red" -> (255, 0, 0)。
0〜255の整数1つ(X) フォーカスがセルから移動する時、ARGB書式(0, 0, 0, X)に変換します。
例:"111" -> (0, 0, 0, 111)。
0〜255の整数3つ(X, Y, Z) RGB書式(X, Y, Z)に変換します。
例:"11, 22, 33" -> (11, 22, 33)。
UseColorNameプロパティがTrueに設定されている時、もしRGB値に既知の色の名前があればRGB値が色の名前に変換されます。
0〜255の整数4つ(A, X, Y, Z) Aが255の場合、RGB書式(X, Y, Z)に変換します。
例:"255, 11, 22, 33" -> (11, 22, 33)。
UseColorName プロパティが True に設定されている時、もしRGB値に既知の色の名前があればRGB値が色の名前に変換されます。Aが255以外の場合、ARGB書式(A, X, Y, Z)に変換します。
例:"99, 11, 22, 33" -> (99, 11, 22, 33)。

入力された色の名前あるいは値が有効でない場合は、最後に入力された有効な値に戻します。
ドロップダウンダイアログから選択
セルのドロップダウンボタンからダイアログを表示して色を選択することができます。ダイアログには、自動の色、テーマの色、標準の色、最近使用した色、無色(塗りつぶしなし)およびその他の色などを表示するかどうかをカスタマイズすることが可能です。さらに、カラーパレットを開いて任意の色を作成することもできます。



ドロップダウンダイアログのカスタマイズについては、「ドロップダウンダイアログの設定」をご参照ください。
カラーピッカーの利用
セルの右側にあるカラーピッカーボタンを使えば、画面上の任意の位置の色要素を取得することが可能です。
  1. ピッカーボタンの上にマウスボタンを押下します。

  2. マウスボタンを押下したまま、画面上の取得したい色にポインタを移動します。
    移動中にGcColorPickerCellのエディタから常にポインタの所在位置の色を確認できます。マウスボタンを離すと色が確定されセルに設定されます。
また、GcColorPickerEditingControl.GetColorFromScreenメソッドを使用するとカラーピッカーボタンと同様に画面上の任意の色要素を取得することが可能です。

Imports GrapeCity.Win.MultiRow
Imports PlusPakCell = GrapeCity.Win.MultiRow.PlusPak

Private Sub GcMultiRow1_EditingControlShowing(ByVal sender As Object, ByVal e As GrapeCity.Win.MultiRow.EditingControlShowingEventArgs) Handles GcMultiRow1.EditingControlShowing
    If TypeOf (e.Control) Is PlusPakCell.GcColorPickerEditingControl Then
        Dim editor = DirectCast(e.Control, PlusPakCell.GcColorPickerEditingControl)

        ' GetColorFromScreenメソッドで取得した値をラベルの文字列に設定する 
        Label1.ForeColor = editor.GetColorFromScreen(New Point(600, 500))
    End If
End Sub
using GrapeCity.Win.MultiRow;
using PlusPakCell = GrapeCity.Win.MultiRow.PlusPak;

private void gcMultiRow1_EditingControlShowing(object sender, EditingControlShowingEventArgs e)
{
    if (e.Control is PlusPakCell.GcColorPickerEditingControl)
    {
        PlusPakCell.GcColorPickerEditingControl editor = (PlusPakCell.GcColorPickerEditingControl)e.Control;

        // GetColorFromScreenメソッドで取得した値をラベルの文字列に設定する
        label1.ForeColor = editor.GetColorFromScreen(new Point(600, 500));
    }
}
選択した色の取得
セルで選択された色を取得するには、Valueプロパティを使用します。GcMultiRow.CellValueChangedイベントを使用すると、選択された色が変わったときの値を取得することができます。

次のコードは、GcColorPickerCellで選択した色をリッチテキストボックスで選択されている文字に設定します。
Imports GrapeCity.Win.MultiRow
Imports PlusPakCell = GrapeCity.Win.MultiRow.PlusPak

Private Sub GcMultiRow1_CellValueChanged(ByVal sender As Object, ByVal e As GrapeCity.Win.MultiRow.CellEventArgs) Handles GcMultiRow1.CellValueChanged
    If TypeOf (GcMultiRow1(e.RowIndex, e.CellIndex)) Is PlusPakCell.GcColorPickerCell Then
        Dim cell = DirectCast(GcMultiRow1(e.RowIndex, e.CellIndex), PlusPakCell.GcColorPickerCell)
        RichTextBox1.SelectionColor = cell.Value
    End If
End Sub
using GrapeCity.Win.MultiRow;
using PlusPakCell = GrapeCity.Win.MultiRow.PlusPak;

private void gcMultiRow1_CellValueChanged(object sender, CellEventArgs e)
{
    if (gcMultiRow1[e.RowIndex, e.CellIndex] is PlusPakCell.GcColorPickerCell)
    {
        PlusPakCell.GcColorPickerCell cell = (gcMultiRow1[e.RowIndex, e.CellIndex] as PlusPakCell.GcColorPickerCell);
        richTextBox1.SelectionColor = (System.Drawing.Color)cell.Value;
    }
}

関連トピック

 

 


© MESCIUS inc. All rights reserved.