5

XtraGrid で特定の行セルを読み取り専用 (編集不可) にするにはどうすればよいですか? たとえば、すべての行ではなく、row[0] だけです。

4

3 に答える 3

0

出典: 個々のグリッド セルの編集を条件付きで防止する方法

条件に基づいてグリッド セルを読み取り専用にする必要がある場合、最善の方法は、 GridViewのShowingEditorイベント を使用し、イベントに渡されたe.Cancelパラメーターを介して編集できないようにすることです。編集を禁止する必要がある場合は、単純に True に設定してください。

// disable editing

private void gridView1_ShowingEditor(object sender, System.ComponentModel.CancelEventArgs e) {

    GridView view = sender as GridView; 
        e.Cancel = view.FocusedRowHandle == 0;
}

ソース - ButtonEdit 列内の特定のセルに対して無効なボタンを表示する方法
別のアプローチは、@DmitryG が提案したように、読み取り専用のリポジトリ エディター コントロールを割り当てることです。

あなたの場合、2 つの TextEdit リポジトリ アイテムを作成する必要があります。1 つは有効なボタンで、もう 1 つは無効なボタンです。次に、GridView.CustomRowCellEditイベントを処理し、特定の条件に従って必要なリポジトリ アイテムをe.RepositoryItemパラメーターに渡します。詳細については、個々のセルへの編集者の割り当てのヘルプ トピックを参照してください。

ここに画像の説明を入力

private void gridView1_CustomRowCellEdit(object sender, CustomRowCellEditEventArgs e)  
{
    if (e.Column.Caption == "Any2")
    {
        if (e.RowHandle == 0)
            e.RepositoryItem = columnReadOnlyTextEdit;
        else
            e.RepositoryItem = columnTextEdit;    
    }
}

参考文献:
グリッド セルのルック アンド フィールをカスタマイズする
方法 グリッド列を読み取り専用にする方法

于 2015-09-08T14:07:49.807 に答える