XtraGrid で特定の行セルを読み取り専用 (編集不可) にするにはどうすればよいですか? たとえば、すべての行ではなく、row[0] だけです。
質問する
12082 次
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 に答える