Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#DataGridView如何阐明当前列表<;行动>;_C#_Winforms_Datagridview - Fatal编程技术网

C#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时,只需突出显示第三行。我搜

我想强调一下目前正在datagridview上实现的方法

这是一份清单:

  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;