Hola,
Tengo una ventana con un datagrid y dos campos de texto. En uno se indica
el valor del datagrid que en ese momento se tiene que leer con una pistola
LCB y en el otro se escribe el valor que se lee de la pistola. Cuando lo
leido es correcto actualizo el datagrid y paso al siguiente valor a ser
comprobado. Cuando se ha terminado de comprobar todas las filas del data
grid llamo a una función para refrescar los datos, que es la misma a la que
se llama en el Load de la ventana. En esta función creo un dataset, realizo
la consulta SQL y asocio el datagrid con el dataset.
En el Load no da problemas, pero cuando voy a recargar otra vez los datos
después de leerlos todos, al hacer el SetDataBinding del datagrid con el
dataset me da un error de:
- System.ArgumentException - Controls created on a thread cannot be parented
to another thread
Los datos de la pistola se leen a través del puerto serie. En la clase para
manejar el puerto serie declaro el evento:
public event EtiquetaRecibidaDelegate EtiquetaRecibida;
public delegate void EtiquetaRecibidaDelegate(string label);
Y luego en la función donde se abre el puerto serie:
EtiquetaRecibida += new
ComPistolaLCB.EtiquetaRecibidaDelegate(Form).LoadLabel);
La función LoadLabel está definida en Form (la ventana con el datagrid).
La función que refresca los datos tiene el siguiente código:
DataSet dataset = new DataSet(DATASET_PRESEQUENCING_NAME);
if (!presequencingUIProcess.PresequencingCurrentGetList(lineTC, compFamily,
ref dataset, DATASET_PRESEQUENCING_NAME))
return;
dataset.DataSetName = DATASET_PRESEQUENCING_NAME;
dGCurrentPresequencing.SetDataBinding(dataset, DATASET_PRESEQUENCING_NAME);
dGCurrentPresequencing.Refresh();
- En el SetDataBinding es donde me da el error.
He probado declarando el dataset como una variable global de la clase y
haciendo un reset al principio de la función: dataset.Reset();
Entonces no me da ese error pero el datagrid me aparece vacío. Sin embargo,
depurando, si consulto: datagrid.DataSet.Tables
veo que si están los datos que se deberían de mostrar.
Espero que me haya explicado bien.
No sé si a alguien le ha pasado esto alguna vez y/o si conoce la solución.
Pero agradecería muchísimo si alguien me dice como lo podría solucionar.
Muchas gracias,
Ana
Leer las respuestas