每次单击按钮时,我都试图更改DataGridViewButtonColumn中按钮的文本。
我对列的定义如下:
DataGridViewButtonColumn sitemapButtonColumn = new DataGridViewButtonColumn
{
Name = "Process",
Text = "Start",
UseColumnTextForButtonValue = true,
DataPropertyName = "Process",
FillWeight = 7,
Width = 75
};
dg_list.CellContentClick += dg_list_StartStopProcessClick;
现在,在单元格单击后控制事件的函数是:
private void dg_list_StartStopProcessClick(object sender, DataGridViewCellEventArgs e)
{
var senderGrid = (DataGridView)sender;
if (senderGrid.Columns[e.ColumnIndex] is DataGridViewButtonColumn &&
e.RowIndex >= 0 &&
e.ColumnIndex == dg_lista_blogs_automatizacion.Columns["Process"].Index)
{
if (senderGrid.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString() == "Start")
{
senderGrid.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = "Stop";
senderGrid.Rows[e.RowIndex].Cells[e.ColumnIndex].Style.BackColor = Color.OrangeRed;
}
else
{
senderGrid.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = "Start";
senderGrid.Rows[e.RowIndex].Cells[e.ColumnIndex].Style.BackColor = Color.White;
}
}
}
嗯,这不管用!
我一直在搜索并找到一篇文章,它将UseColumnTextForButtonValue修改为false,设置新的文本值,并再次设置为true。
问题是,我不知道如何在事件中访问UseColumnTextForButtonValue属性。
有什么帮助吗?
发布于 2018-01-29 08:11:28
基本上,我可以解决在UseColumnTextForButtonValue实例中将DataGridViewButtonColumn设置为false的问题。
当UseColumnTextForButtonValue设置为false时,必须在其他事件中初始化按钮的文本值。因此,我使用CellFormatting事件根据我想要的状态设置文本值。
private void dg_list_auto_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
if (e!=null && e.ColumnIndex==0)
{
dg_list_auto.Rows[e.RowIndex].Cells[0].Value = dg_list_auto[e.RowIndex].flag_sitemap_started?"Stop":"Start";
dg_list_auto.Rows[e.RowIndex].Cells[0].Style.BackColor = dg_list_auto[e.RowIndex].flag_sitemap_started ? Color.IndianRed: Color.GreenYellow;
}
}
https://stackoverflow.com/questions/48430385
复制相似问题