如何阻止删除只读DataGridView上的行?

时间:2011-05-13 04:37:42

标签: c# .net winforms

甚至为什么我可以删除只读DataGridView上的行?

我可以将Enabled设置为false但是我甚至无法选择,我真的不需要这个灰色蒙版。

4 个答案:

答案 0 :(得分:2)

AllowUserToDeleteRows属性设置为false

答案 1 :(得分:0)

ReadOnly属性仅确定是否可以编辑单元格。它对用户删除行的能力没有影响。如果您不想禁用该控件,则可以通过将RowHeadersVisible属性设置为false来有效防止行删除。

编辑:请参阅@ Dmitry的回答:AllowUserToDeleteRows

答案 2 :(得分:0)

执行此操作的最佳位置是datagridview的ReadOnlyChanged事件。并且不要忘记禁用添加新行。

Private Sub MyDataGridView_ReadOnlyChanged(sender As System.Object, e As System.EventArgs) Handles MyDataGridView.ReadOnlyChanged
    Me.MyDataGridView.AllowUserToDeleteRows = Not Me.MyDataGridView.ReadOnly
    Me.MyDataGridView.AllowUserToAddRows = Not Me.MyDataGridView.ReadOnly
End Sub

答案 3 :(得分:0)

您可以处理事件

using FlashcardMap = ::std::unordered_map<int64, Flashcard>;
using FlashcardMapEntry = FlashcardMap::value_type;

...

const FlashcardMap& GetFlashcardMap();
...
FlashcardMap flashcards_ GUARDED_BY(lock_);

...

const FlashcardMapEntry& GetCardHandler::GetRandomFlashcard()
{
    const FlashcardMap& flashcards_ = Get<FlashcardContext>()->GetFlashcardMap();
    const FlashcardMapEntry& entry = *( std::next(std::begin(flashcards_), rand_between(0, flashcards_.size()) ) );
    return entry;
}