FlexGrid for WinForms
基本的な操作
グリッド > 基本的な操作

このトピックでは、グリッドレベルで処理する必要があるさまざまな操作について説明します。

グリッドデータの入れ替え

データの入れ替えとは、列のデータと行のデータを入れ替えることです。WinForms FlexGrid でこれを行うには、次のコードに示すように、クラスの Transpose() メソッドを使用します。

c1FlexGrid1.Transpose();              
C1FlexGrid1.Transpose()                        

データの入れ替えは、非連結グリッドの場合にのみ可能です。また、グリッド内の列にソートが適用されている場合は、Transpose() メソッドを実行すると、データの入れ替えの前にソートが削除されます。

コンテキストメニューの表示

コンテキストメニューには、ユーザーに便利なように、頻繁に使用するアクションのショートカットが表示されます。FlexGrid では、コンテキストメニューが表示される状況が 2 つあります。

非編集モードでのコンテキストメニューの表示

グリッドが非編集モードのときにコンテキストメニューを表示するには、ContextMenuStrip コントロールのインスタンスを作成し、メニュー項目を追加し、そのインスタンスを Control クラスの ContextMenuStrip プロパティに割り当てる必要があります。

Display Context Menu in Non-edit Mode

非編集モードで WinForms FlexGrid にコンテキストメニューを表示する方法については、次のコードを参照してください。

// ContextMenuStripコントロールのインスタンスを作成します
ContextMenuStrip cm = new ContextMenuStrip();

// コンテキストメニューにメニュー項目を追加します
cm.Items.Add("Add Above");
cm.Items.Add("Add Below");
cm.Items.Add("Add Left");
cm.Items.Add("Add Right");

// インスタンスをContextMenuStripプロパティに割り当てます 
c1FlexGrid1.ContextMenuStrip = cm;                       
' ContextMenuStripコントロールのインスタンスを作成します
Dim cm As ContextMenuStrip = New ContextMenuStrip()

' コンテキストメニューにメニュー項目を追加します
cm.Items.Add("Add Above")
cm.Items.Add("Add Below")
cm.Items.Add("Add Left")
cm.Items.Add("Add Right")

' インスタンスをContextMenuStripプロパティに割り当てます 
c1FlexGrid1.ContextMenuStrip = cm 

編集モードでのコンテキストメニューの表示

編集モードでコンテキストメニューを表示するには、 クラスの StartEdit イベントを使用して、エディタにコンテキストメニューを表示する必要があります。StartEdit イベントで、エディタと ContextMenuStrip をインスタンス化し、メニュー項目を追加してから、それをエディタの ContextMenuStrip プロパティに割り当てます。

Display Context Menu in Edit Mode

編集モードで WinForms FlexGrid にコンテキストメニューを表示するには、次のコードを使用します。

private void C1FlexGrid1_StartEdit(object sender, C1.Win.C1FlexGrid.RowColEventArgs e)
{
     TextBox tb = (TextBox)c1FlexGrid1.Editor;

    // コンテキストメニューを作成します
    ContextMenuStrip cm2 = new ContextMenuStrip();
    cm2.Items.Add("Cut");
    cm2.Items.Add("Copy");
    cm2.Items.Add("Paste");
   
    // コンテキストメニューを設定します
    tb.ContextMenuStrip = cm2;
}                      
Private Sub C1FlexGrid1_StartEdit(ByVal sender As Object, ByVal e As C1.Win.C1FlexGrid.RowColEventArgs)
    Dim tb As TextBox = CType(c1FlexGrid1.Editor, TextBox)

    ' コンテキストメニューを作成します
    Dim cm2 As ContextMenuStrip = New ContextMenuStrip()
    cm2.Items.Add("Cut")
    cm2.Items.Add("Copy")
    cm2.Items.Add("Paste")

    ' コンテキストメニューを設定します
    tb.ContextMenuStrip = cm2
End Sub        
関連トピック