Недопустимая операция перекрестного потока - Изменить значение ячейки сетки - PullRequest
1 голос
/ 05 ноября 2011

Здравствуйте, разработчики, снова здесь с новой проблемой !!
В моей программе потока я столкнулся с проблемой, когда менял значение элемента управления.

Проблема была: Операция с поперечным потоком недопустима.
Да .. Я получил решение с помощью функции ниже, которая позволяет мне разрешить доступ к управлению в потоке.

delegate void SetControlValueCallback(Control oControl, string propName, object propValue);
private void SetControlPropertyValue(Control oControl, string propName, object propValue)
{
    if (oControl.InvokeRequired)
    {
        SetControlValueCallback d = new SetControlValueCallback(SetControlPropertyValue);
        oControl.Invoke(d, new object[] { oControl, propName, propValue });                
    }
    else
    {
        Type t = oControl.GetType();
        System.Reflection.PropertyInfo[] props = t.GetProperties();
        foreach (System.Reflection.PropertyInfo p in props)
        {
            if (p.Name.ToUpper() == propName.ToUpper())
            {
                p.SetValue(oControl, propValue, null);
            }
        }
    }
}

, когда мне нужно изменить значение элемента управления( как изменение текста lable ) Я использую эту функцию
SetControlPropertyValue (_form.lblImportFiles, "Text", "Importing ..."); как это и его изменениеvalue.
Теперь .. Я хочу изменить значение ячейки сетки или нужно поиграть с ее свойством Rows..etc ..

Как я могусделай это?Я здесь совершенно слепой .. Забери меня из этой проблемы.

1 Ответ

1 голос
/ 05 ноября 2011

Если вы хотите установить значение в Datagridview, попробуйте это,

private void ChangeGridUploadStatus(DataGridView dgv)
{
if (!dgv.InvokeRequired)
{
dgv["ColumnName", index].Value = "ok";
}
else
{
dgv.Invoke(new ChangeGridUploadStatusHandler(ChangeGridUploadStatus), dgv);
}
}
delegate void ChangeGridUploadStatusHandler(DataGridView dgv);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...