C#DataGridView如何阐明当前列表<;行动>;
我想强调一下目前正在datagridview上实现的方法 这是一份清单:C#DataGridView如何阐明当前列表<;行动>;,c#,winforms,datagridview,C#,Winforms,Datagridview,我想强调一下目前正在datagridview上实现的方法 这是一份清单: public List<Action> functions = new List<Action>(); 添加方法后的我的datagridview如下所示: 我只想知道当前的航路点 要开始列表,我使用: foreach (Action func in functions) { func(); } 例如,当前激活编号2时,只需突出显示第二行。 当前激活编号3时,只需突出显示第三行。我搜
public List<Action> functions = new List<Action>();
添加方法后的我的datagridview如下所示:
我只想知道当前的航路点
要开始列表,我使用:
foreach (Action func in functions)
{
func();
}
例如,当前激活编号2时,只需突出显示第二行。
当前激活编号3时,只需突出显示第三行。我搜索了论坛,但没有找到解决方案。请耐心等待新手。多谢各位
编辑1:
根据需要在backgroundworker中添加foreach循环的代码
private void DoWork_backgroundworker(object sender, DoWorkEventArgs e)
{
while (true)
{
foreach (Action func in functions)
{
func();
}
}
}
和启动按钮:
private void metroButton7_Click(object sender, EventArgs e)
{
DoWork_backgroundworker.RunWorkerAsync();
}
如果可以使用
Selected
属性进行高亮显示,则可以使用普通for循环(这将为您提供一个索引器)并为属于项目的行编制索引。只需将该行的Selected
属性设置为true
:
for (int i = 0; i < functions.Count; i++)
{
//select the row before action is started
dataGridView1.Rows[i].Selected = true;
// execute your action
functions[i]();
//unselect the row when job is finished
dataGridView1.Rows[i].Selected = false;
}
你认为突出显示是怎样的?它有不同的底色吗?正常的突出显示是指选择的显示
。任何东西都只想知道当前正在执行哪个列表。可以像SelectedRow一样正常您是否在主线程上运行foreach循环?在backgroundworker中单击按钮可以发布代码吗
for (int i = 0; i < functions.Count; i++)
{
//select the row before action is started
dataGridView1.Rows[i].Selected = true;
// execute your action
functions[i]();
//unselect the row when job is finished
dataGridView1.Rows[i].Selected = false;
}
dataGridView1.RowsDefaultCellStyle.SelectionBackColor = System.Drawing.Color.Black;