[ RestricComboColumn ] 絞込み選択機能を持ったComboBox型の DataGridColumnStyle クラスライブラリ

【概要】

  Windows.Forms.DataGridColumnStyle をベースにした、セル単位で選択する対象データを絞り込む機能を持ったComboBox型のDataGrid組込み用のクラスライブラリです。

【特徴】

  ・DataGridTableStyle に組み込むことができる、ComboBox型の DataGridColumnStyle です。
 ・テーブルデータをComboBoxに連結して、選択入力の機能を提供します。
 ・セル単位で選択データを絞り込むことができます。編集開始イベントを利用して、条件に応じた絞込みができます。
 ・標準の DataGridTextBoxColumn と同等のキーボード操作が可能です。
 ・個々のセル単位で、編集および描画の条件設定ができます。
     ・セルの編集が開始されるときにイベントが発生します。
     ・セルが描画されるときにイベントが発生します。
ダウンロード (RestricComboColumn.lzh、10.8KB : C#.NETソースコード)
【使い方】
 DataGridTableStyleに設定するには、以下の様に記述します。
// インスタンスを生成します。
RestricComboColumn myColumn = new RestricComboColumn();

// 参照テーブルのデータソースを設定
// dataSourceはDataViewを指定する。
// 実行時に編集開始イベント内でこのDataViewのRowFilterを設定して、表示データを絞り込む
//
myColumn.DataSource = dataSource;
// 参照テーブルの表示内容のデータプロパティを設定
myColumn.DisplayMember = displayMember;
// 参照テーブルの参照値のデータプロパティを設定
myColumn.ValueMember = valueMember;

// DataTable項目名を設定
myColumn.MappingName = name;
// DataGrid列項目名を設定
myColumn.HeaderText = headerText;
// DataGrid列幅を設定
myColumn.Width = width;
// DataGrid列表示位置を設定
myColumn.Alignment = alignment;
// DataGrid Nullデータ表示形式を設定
myColumn.NullText = " ";            

// DataGrid列表示書式を設定
if ( myFormat != "" )
    myColumn.Format = myFormat;

// DataGrid日本語入力形式を設定
myColumn.ImeMode = ImeMode;

// DataGrid編集可否を設定
if ( readOnlyFlag )
    myColumn.ReadOnly = readOnlyFlag;
else
{
    // ComboBoxのText入力の可否を設定
    if ( DropDownFlag )
        myColumn.DropDownStyle = ComboBoxStyle.DropDown;

    myColumn.DroppedDown = true;
}

// ValueEventルーチンの設定
if ( ValueEvent != null )
    myColumn.ValueChanging += new ValueChangingEventHandler(ValueEvent);

// FormatEventルーチンの設定
if ( FormatEvent != null )
    myColumn.CellFormat += new CellFormatEventHandler(FormatEvent);

// GridColumnStyles定義を追加(ts:DataGridTableStyle)
ts.GridColumnStyles.Add(myColumn);

【使い方】
 表示データを絞り込むには、以下の様に記述します。
/// <summary>
///  DataGridセル編集開始イベントメソッド
/// </summary>
private void DataGrid_ValueChanging( object sender, OsDataGridExtensions.DataGridValueChangingEventArgs e )
{
    // 表示する行番号がDataGridのカレント行と等しい場合または選択行の場合、カレント行の文字色・背景色を設定する
    if ( e.ColumnName.Equals("対象列名"))
    {
        // (DataRowView)e.Row で、必要に応じてカレント行の他の列値を参照できます。
        myDataView.RowFilter = "必要な絞込み条件"
    }  
}
カスタムプロパティ 説  明
DataSource 列の値が参照するテーブルのデータソースを取得または設定します。
DisplayMember 列の値が参照して表示する内容のデータソースのプロパティを指定する文字列を取得または設定します。
DropDownStyle コンボボックスのスタイルを指定する値を取得または設定します。
DroppedDown コンボボックス表示時にドロップダウン部分が表示されているかどうかを示す値を取得または設定します。
Format テキストの書式指定方法を指定する1文字以上の文字列を取得または設定します。
ValueMember 列の値が参照する値のデータソースのプロパティを指定する文字列を取得または設定します。

カスタムイベント 説  明
CellFormat セルが描画されるときに発生します。
ValueChanging セルの編集が開始されるときに発生します。

【補足】

  上記プロパティ/イベントには DataGridTextBoxColumn と共通する内容は含んでいません。
【利用法】
このライブラリは、システム開発に利用できるように、.NET 上のクラスライブラリとして作られています。
単独の DLL として参照設定して利用するか、プロジェクト内に追加して利用してください。
【注意】 このライブラリを利用する場合、利用規約を確認してください。
Home | Library | 戻る