如果符合以下规则,是否有隐藏某些按钮? 以下是用于创建按钮列的代码和用于获取匹配的代码。
我试过BookButtonCell.Visible = false;,但它说它只是只读。
感谢。
private void Form1_Load(object sender, EventArgs e)
{
DataGridViewButtonColumn bookbutton = new DataGridViewButtonColumn();
{
bookbutton.HeaderText = "Book";
bookbutton.Text = "Book";
bookbutton.Name = "Book";
bookbutton.UseColumnTextForButtonValue = true;
}
readalleventsdataGridView.Columns.Add(bookbutton);
int x = 0;
foreach (DataGridViewRow gridRow in readalleventsdataGridView.Rows)
{
DataGridViewCell BookButtonCell = gridRow.Cells["Book"];
DataGridViewCell EndDateCell = gridRow.Cells["EndDate"];
String StrTodayDate = DateTime.Now.ToString("dd/MM/yy");
DateTime TodayDate = Convert.ToDateTime(StrTodayDate);
String StrEndDate = EndDateCell.Value.ToString();
DateTime EndDate = Convert.ToDateTime(StrEndDate);
int result = DateTime.Compare(EndDate, TodayDate);
if (result < 0)
{
What Commands To Hide The Button?
}
x++;
}
}
答案 0 :(得分:2)
DataGridViewButtonColumn Visible属性是ReadOnly属性。
即使它看起来像一个按钮,它仍然是DataGridViewButtonColumn
,具有相同的可见性规则。所以缺点是你需要做一些像Ravi建议的那样或者处理DataGridView.CellContentClick事件测试,或者不应该按下按钮,如果没有,就会吞下事件。
从上面链接:
此属性指示单元格是否位于行或列中 其Visible属性设置为false。
答案 1 :(得分:1)
您正在寻找可以设置为.Visible
的{{1}}媒体资源。
答案 2 :(得分:1)
其他人已经写过没有visible
属性。但是有一个简单的伎俩,我今天发现并在同一主题的另一篇文章中给出答案(另一个实际上是这个的重复):
https://stackoverflow.com/a/29010384/2505186
摘要:
为这些单元格指定不同的DataGridViewCellStyle
,其中样式的padding
属性左侧值设置为高于列宽的值。
这会使按钮移出单元格的可见区域。 : - )
答案 3 :(得分:0)
yourButton.Visible=false, which will hide the button from displaying
你可以这样尝试
if (result < 0)
{
BookButtonCell.Visible=false;
}
编辑:对于您的Gridview,您可以查看此Disable Button in Gridview
答案 4 :(得分:0)
如您所知,您无法更改datagridview单元格的可见性。
您必须禁用行或列。如果你在脑海中画出它,你会发现如果一个gridviewcell不可见,它就不好看了。
如此可见是datagridviewcell的只读属性 使用此代码
DataGridViewButtonCell dgvbc = new DataGridViewButtonCell();
dgvbc.ReadOnly = true;
另一种方法是将单元格的前景或背景更改为用户无法使用的颜色:)
至少使用此代码,您可以禁用该按钮。