gpt4 book ai didi

c# - 有时我想隐藏 DataGridViewButtonColumn 中的按钮

转载 作者:太空狗 更新时间:2023-10-29 18:16:04 25 4
gpt4 key购买 nike

我有一个 DataGridView,它是上一个问题 (link) 的主题。但有时 Button 为 null。这可以。但如果它为 null,有什么方法可以选择性地删除/添加(显示/隐藏?)按钮到 Buttons 的 DataGridViewButtonColumn

像这样:

+------------+------------+
| MyText | MyButton |
+------------+------------+
| "do this" | (Yes) |
| "do that" | (Yes) |
| FYI 'blah' | | <---- this is where I optionally want no button
| "do other" | (Yes) |
+------------+------------+

这是我到目前为止尝试过的 (based on this example)

private void grdVerdict_CellFormat(object sender, DataGridViewCellFormattingEventArgs e)
{
if (e.ColumnIndex == grdChoice.Columns["yesbutton"].Index)
{
if (grdVerdict[e.ColumnIndex, e.RowIndex].Value == null)
{
//grdVerdict[e.ColumnIndex, e.RowIndex].Visible = false; //<-says 'it is read only'
//grdVerdict[e.ColumnIndex, e.RowIndex].Value = new DataGridTextBox(); //<- draws 'mad red cross' over whole grid
//((Button)grdVerdict[e.ColumnIndex, e.RowIndex]).Hide; //<- won't work
}
else
{
e.Value = ((Button)grdChoice[e.ColumnIndex, e.RowIndex].Value).Text;
}
}
}

最佳答案

我今天遇到了同样的“问题”。我还想隐藏某些行的按钮。玩了一会儿之后,我发现了一个非常简单且不错的解决方案,它不需要任何重载的 paint() 函数或类似的东西:

只需为这些单元格分配不同的 DataGridViewCellStyle
关键是,您将此新样式的 padding 属性设置为一个值,该值将整个按钮移出单元格的可见区域。
就是这样! :-)

示例:

System::Windows::Forms::DataGridViewCellStyle^  dataGridViewCellStyle2 = (gcnew System::Windows::Forms::DataGridViewCellStyle());
dataGridViewCellStyle2->Padding = System::Windows::Forms::Padding(25, 0, 0, 0);

dgv1->Rows[0]->Cells[0]->Style = dataGridViewCellStyle2;
// The width of column 0 is 22.
// Instead of fixed 25, you could use `columnwidth + 1` also.

关于c# - 有时我想隐藏 DataGridViewButtonColumn 中的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25200679/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com