6

いくつかのデータを含むフォームに datagridview があります。1 列目には、行を削除するためのボタンが含まれています。ある条件に基づいてこのボタンまたは行全体を無効にして、行を削除できないようにするにはどうすればよいでしょうか?

4

3 に答える 3

8

ボタンセルを通常の空のテキストボックスを無効にすることを検討していただけますか?

Dim cell As DataGridViewButtonCell = dgv.row(x).cell(y)
cell = New DataGridViewTextBoxCell()
cell.value = String.Empty
cell.ReadOnly = True

縁取りされた「ボタン」の外観が失われ、残りのセルに溶け込みます (主にデフォルトの DataGridViewTextBoxCells を使用していると仮定します)。

これは C# での同等のもので、さらにフィールドをグレー表示して読み取り専用にしています。

var cell = dgv[column, row] = new DataGridViewTextBoxCell();
cell.Value = ""; // ignored if this column is databound
cell.ReadOnly = true;
cell.Style.BackColor = Color.FromKnownColor(KnownColor.Control);
于 2010-08-09T01:13:52.777 に答える
3

これは古い投稿ですが、私が何をしているのかを提案したいと思います。

If conditionToDisable Then
   Dim cell As New DataGridViewTextBoxCell   'Replace the ButtonCell for a TextCell'
   cell.Value = valueForCell                 'Set the value again'
   grid.Rows(r).Cells(c) = cell              'Override the cell'
End If

これがお役に立てば幸いです。

于 2012-12-29T20:03:31.437 に答える
3

実際、MSDN にはまさにこれを行っているHowToがあります。

編集:いくつかの他の提案を追加しました。

ボタン列を非表示にすることができます。

または、特定の行の削除のみを無効にする場合は、各DataGridViewRowsTagプロパティに true または false を設定し、ボタン イベント ハンドラーで false に設定されている行のみを削除します。これをセルの前景色と背景色を変更するだけで無効に見えるように組み合わせることもできCellFormattingます。手。

于 2010-06-04T18:59:04.970 に答える