Colonna ComboBox in un DataGridView (C#)

venerdì 15 gennaio 2010 - 15.24

atsap Profilo | Newbie

Salve a tutti!

Ho la necessità di inserire una colonna di tipo ComboBox in un controllo DataGridView, cui DataSource è un binding al DB.
Se creo manualmente la colonna, (con DataGridViewComboBoxColumn) mi genera un eccezione stranissima, e la stessa eccezione la genera se la colonna viene automaticamente "fillata". L'eccezione è di tipo ThreadStateException: Prima di effettuare chiamate OLE, occorre impostare il thread corrente sulla modalità Single Thread Apartment (STA).
Ora, è tutto configurato correttamente, nel senso che il thread è configurato come STA!
Il problema è che appena clicco sulla comboBox all'interno della tabella, genera questa eccezione.
Ancora, avrei bisogno di sapere questo: se una comboBox è bindata ad un dataSource, come potrei aggiungere i vari items, selezionando a priori quello già presente nel database? Cerco di spiegarmi meglio:
Ho una combobox che uso per inserire dei dati nel database. Questa combobox contiene i seguenti Items: "Leggero, Medio, Pesante". Supponiamo che io scelga "Medio" e lo inserisca nel database. Ho un'altra combobox che devo usare per modificare il valore del DB: supponiamo che voglia passare da "Medio" a "Leggero". Ora, il controllo comboBox non consente di definire i suoi items sia manualmente che da dataSource (ovvero, o inserisci i dati manualmente, o li prendi dal DB). Spero di essere stato chiaro!

Grazie a tutti!

AGGIUNGO:

Io ho due form: alla chiusura del primo (è un login form, che una volta verificate le credenziali, chiuse se stesso e apre un altro thread) viene aperto un altro thread che resterà "vivo" fino all'uscita dall'applicazione. Se invece di far partire un altro thread, "nascondo" (Form.Hide() sul primo form e Form.Show() sul secondo) la combobox appare. Ma io ho bisogno di usare un nuovo thread! Possibile che debba sollevare un eccezione del genere???

AGGIUNGO (ANCORA!):
Ho risolto così il problema del comboBox da DataSource:

popolo la comboBox da DataSource.
Assegno "null" come dataSource alla comboBox (dopo il fill della tabella, ovviamente).
Aggiungo gli item che mi servono.

Non ho però risolto il problema del Thread: qualcuno che ci capisce qualcosa?
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5