Impostazione DataGridView.DefaultCellStyle.NullValue per null a designtime genera l'errore in aggiunta di righe di runtime

StackOverflow https://stackoverflow.com/questions/48271

  •  09-06-2019
  •  | 
  •  

Domanda

In Visual Studio 2008

  • aggiungere un nuovo controllo DataGridView per una forma
  • Modifica Colonne
  • Aggiungere un nuovo DataGridViewImageColumn
  • Aprire il CellStyle Costruttore di questa colonna (proprietà DefaultCellStyle)
  • Modificare il NullValue dal Sistema.Di disegno.Bitmap a null
  • Tenta di aggiungere una nuova Riga della DataGridView in fase di runtime (dataGridView1.Le righe.Aggiungi();)
  • Si ottiene questo errore:Sistema.FormatException:Formattato valore della cella è un tipo sbagliato.

Se si ritorna NullValue di Sistema.Di disegno.Bitmap (come è stato) è ancora ottenere lo stesso errore all'aggiunta di una riga.

Se si imposta il NullValue in fase di runtime invece di designtime non si ottiene anny errore.(dataGridView1.Colonne[0].DefaultCellStyle.NullValue = null;)

Mi può dire perché è che?

È stato utile?

Soluzione

Questo potrebbe essere un bug nella finestra di progettazione;se si dà un'occhiata intorno alla .designer.cs file (magari facendo un confronto prima e dopo aver impostato NullValue null), si dovrebbe essere in grado di vedere il codice che genera.

Altri suggerimenti

Kronoz è giusto.Dopo l'impostazione a designtime si aggiunge questo al .designer.cs:

dataGridViewCellStyle1.NullValue = "null";

Se modifico "null" per null allora funziona bene.Ho controllato datagridviewcellstyle a cui.NullValue set_NullValue(Oggetto) e get_NullValue con riflettore e penso che un valore di stringa non dovrebbe sollevare qualsiasi errore qui.

Attenzione però, con questo e se si vuole impostare designtime, quindi non dimenticate di modificare il .il design.cs.

Modificare il NullValue dal Sistema.Di disegno.Bitmap a null

Quando si entra in 'null' in campo per NullValue nella finestra di Progettazione, si sta specificando il valore stringa "null".L'unico modo per impostare NullValue a un non-valore stringa per impostare a livello di programmazione o modificando il codice di progettazione di te.

Casella di controllo non può avere un valore di Stringa.Non impostare qualsiasi valore di default nell'IDE di dialogo proprietà.Ho avuto il "Vuoto" scritto nel RowsDefaultCellStyle.Proprietà formato e che ha causato l'errore.Si è auto-inflitta.Come risolvere stavo cercando di impostare la casella di controllo stato non controllato, ma ho bisogno di eliminare il valore di stringa.

Ho trovato che è meglio se si eliminano solo l'elemento di design, tutte insieme, dal Formato di area e il valore predefinito null zona.Poi è imposta per tornare al vero null.Ho intenzione di provare a impostarlo in init sezione di distanza dal designer generated merda.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top