No se puede cambiar el tipo de una columna DataGridView después de haberla creado, pero no hay nada que le impida crear columnas según sea necesario en tiempo de ejecución.
De modo que, dependiendo de la lógica, determina el tipo de cada columna, crea columnas según sea necesario y las agrega a DataGridView.
Un ejemplo de la creación de una columna de casilla es a continuación:
DataGridViewCheckBoxColumn col = new DataGridViewCheckBoxColumn()
dataGridView1.Columns.Add(col);
Sin más información sobre lo que determina sus tipos de columna que es difícil dar más consejos, pero se puede usar esta técnica con facilidad con un DataTable, inspeccionando el tipo de cada una de sus columnas, o incluso utilizando la reflexión sobre un objeto al que está vinculando la vista de tabla de datos.
Por cierto, ver http: //meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be-removed-from-posts –
@JohnSaunders Gracias, pero ¿hay alguna solución? – funerr
Si supiera la respuesta, la habría respondido. –