通常、C1TrueDBGrid のデフォルトの編集動作は、ほとんどのアプリケーションで十分な機能を果たします。しかし、必要に応じて、この動作をカスタマイズすることもできます。便利なテクニックの1つは、ドロップダウンリスト、コンボボックス、または他の C1TrueDBGrid コントロールを使用して、有効な値のリストから値を選択できるようにすることです。TrueDBGridでは、事実上任意の .NET コントロールまたはサードパーティのコントロールを使用して、簡単にこれを実行できます。以下に一般的なアプローチを示します。また、実用的な例はチュートリアル9: 任意のドロップダウンコントロールをグリッドセルに結び付けるにあります。
一般に、C1TrueDBGrid の標準エディタの代わりにドロップダウンリストまたはコンボボックスを表示するには、次の手順に従います。
Visual Basic コードの書き方
Visual Basic |
コードのコピー
|
---|---|
Private Sub C1TrueDBGrid1_BeforeColEdit(ByVal sender As Object, ByVal e As C1.Win.C1TrueDBGrid.BeforeColEditEventArgs) Handles C1TrueDBGrid1.BeforeColEdit Dim r As Rectangle = Me.C1TrueDBGrid1.Splits(0).GetCellBounds(Me.C1TrueDBGrid1.Row, e.ColIndex) r = Me.C1TrueDBGrid1.RectangleToScreen(r) r = Me.RectangleToClient(r) Me.ListBox1.Left = r.Left Me.ListBox1.Top = r.Bottom End Sub |
C#コードの書き方
C# |
コードのコピー
|
---|---|
private void c1TrueDBGrid1_BeforeColEdit(object sender, C1.Win.C1TrueDBGrid.BeforeColEditEventArgs e) { Rectangle r = this.c1TrueDBGrid1.Splits[0].GetCellBounds(this.c1TrueDBGrid1.Row, e.ColIndex); r = this.c1TrueDBGrid1.RectangleToScreen(r); r = this.RectangleToClient(r); this.ListBox1.Left = r.Left; this.ListBox1.Top = r.Bottom; } |
ただし、グリッドの MarqueeStyle プロパティが 6 - MarqueeEnum.FloatingEditorの値(デフォルト)に設定されている場合、この方法は使用できません。フローティングエディタマーキーが使用されている場合は、ユーザーがセルを変更するまで BeforeColEdit イベントが発生しません。しかし、次の項で説明するように、組み込み列ボタン機能を使ってドロップダウンをアクティブにする方法があります。
他のMarqueeStyle 設定については、現在の行またはセルを強調表示するを参照してください。グリッドセルから ListBox コントロールをドロップダウンする例は、チュートリアル9: 任意のドロップダウンコントロールをグリッドセルに結び付けるにあります。