10

Devo aggiungere il mio DataGridViewButtonCell a Column e ho bisogno di denominarci a vicenda con nomi diversi.C# DataGridViewButtonCell imposta il testo dei pulsanti

Ma non ho trovato alcuna proprietà di testo.

Qualcuno può aiutarmi, per favore?

faccio quella roba

DataGridViewButtonCell b = new DataGridViewButtonCell(); 
b.Value = "name"; 
MainTable.Rows.Add(b); 

e non funziona

+0

Se si imposta la proprietà DataGridViewCell.Value come la maggior parte delle risposte suggeriscono che cambierà il valore effettivo. Spesso non accettabile. Usa l'evento CellFormatting e imposta qui e.Value! – TaW

risposta

6

Ammetto che non capisco il motivo per cui il tuo metodo non avrebbe funzionato, ma ero in grado di ottenere le seguenti operazioni per fare quello che si voleva come un work-around:

 DataGridViewButtonCell b = new DataGridViewButtonCell(); 
     int rowIndex = MainTable.Rows.Add(b); 
     MainTable.Rows[rowIndex].Cells[0].Value = "name"; 

Nella mia Ad esempio suppongo che tu abbia solo una colonna (un DataGridViewButtonColumn). Dovresti essere in grado di modificare ciò che vuoi a patto che tu imposti il ​​valore dopo aggiungendo la riga. Anche in questo caso, non so perché questo è il caso ...

0

Prova

yourDataGridView.Rows[rowIndex].Cells[columnIndex].Value 
+0

io faccio quella roba 'DataGridViewButtonCell b = new DataGridViewButtonCell(); b.Value = "nome"; MainTable.Rows.Add (b); ' e non funziona –

+0

Quante colonne in MainTable? – progpow

+0

solo pulsante colonna, questo è tutto –

0
+0

io faccio quella roba DataGridViewButtonCell b = new DataGridViewButtonCell(); b.Value = "nome"; MainTable.Rows.Add (b); e non funziona –

+0

Si vede il pulsante? – progpow

+0

sì, capisco, ma senza testo –

28

Se si desidera che tutti i pulsanti per avere lo stesso testo utilizzare UseColumnTextForButtonValue proprietà.

Se si desidera un testo diverso per ogni pulsante quindi utilizzare DataGridViewCell.Value proprietà

+1

UseColumnTextForButtonValue era esattamente quello che volevo. Impostalo true e imposta la proprietà Text della colonna su ciò che vuoi visualizzare. –

0

Se si dispone di una sola colonna e questo è un ButtonColumn di default

MainTable.Rows.Add("Some text"); 

sarà sufficiente.

+0

si spera che possa aiutare smbdy a utilizzare solo una colonna. –

+1

sì in realtà. chi usa solo una colonna per un intero dgv potrebbe aver bisogno di molto aiuto 8) –

1

Permette di mostrare lo stesso testo su tutti i pulsanti con pulsante di default in un primo momento

DataGridView.Columns["Buttons_Index"].DefaultCellStyle.NullValue = "name"; 
5

So che hai la tua risposta accettato, ma ho aggiunto questi in constructor e ha funzionato per me.L'unica cosa che mancava è UseColumnTextForButtonValue = true

public Form1() 
    { 
     InitializeComponent(); 
     var editColumn = new DataGridViewButtonColumn 
     { 
      Text = "Edit", 
      UseColumnTextForButtonValue = true, 
      Name = "Edit", 
      DataPropertyName = "Edit" 
     }; 
     dataGridView1.Columns.Add(editColumn); 
    } 
+1

è una bella risposta, l'ho risolto molto tempo fa, ma è la cosa migliore se funziona davvero, non posso controllarlo da solo, ma chiunque cercando una risposta meglio provare questo –

1

Se si desidera impostare lo stesso testo per tutti i pulsanti, è possibile:

  1. In GridView proprietà fare clic su Modifica colonne
  2. Clicca nel pulsante colonna
  3. Impostare Text per il testo che si desidera visualizzare su ogni pulsante
  4. Impostare UserColumnTextForButtonValue-True

vedere qui sotto:

enter image description here