fosforo (Normal User)
Expert
Messaggi: 391
Iscritto: 06/04/2009
|
Ciao a tutti.
Ho creato un DatagridView che popolo prendendo il nome e la data di creazione di file in una cartella.
Ora vorrei creare una TextBox che mi aiuti a trovare il Nome File filtrando il DatagridView.
Grazie
|
|
Mikelius (Member)
Expert
Messaggi: 525
Iscritto: 14/04/2017
|
Puoi postare il codice che usi per popolare il datagridView?
|
|
fosforo (Normal User)
Expert
Messaggi: 391
Iscritto: 06/04/2009
|
Nel frattempo ho cambiato qualcosina, invece dei file cerco le sottocartelle:
DirectoryInfo directory = new DirectoryInfo(EventiPath);
DirectoryInfo[] directories = directory.GetDirectories();
if (directoryCount != 0)
{
/// Read all subfolder in Event folder and put into DataGrid
// ADD row to dataGridView1
this.dataGridView1.Rows.Add(folder.Name, NameEvent, folder.CreationTime.ToString());
// Order dataGridView1 by creation time
this.dataGridView1.Sort(this.dataGridView1.Columns[2], ListSortDirection.Descending);
}
|
|
Mikelius (Member)
Expert
Messaggi: 525
Iscritto: 14/04/2017
|
vuoi scrivere nella textBox il pattern con cui cercare la cartella?
Codice sorgente - presumibilmente Plain Text |
directory.GetDirectories(TextBox.Text,SearchOption)
|
Dopo, se vuoi avere nella datagrid solo queste cartelle, a mio avviso la cosa più semplice sarebbe cancellare il datagrid e ripopolarlo con il risultato di quel metodo.
Ultima modifica effettuata da Mikelius il 04/06/2018 alle 16:55 |
|
fosforo (Normal User)
Expert
Messaggi: 391
Iscritto: 06/04/2009
|
Grazie Mikelius
Una domanda:
Sto provando cosi:
if (folder.Name == "62")
this.dataGridView1.Rows.Add(folder.Name, NameEvent, folder.CreationTime.ToString());
e funziona.
MA se provo:
if (folder.Name == TextBox.tostring())
this.dataGridView1.Rows.Add(folder.Name, NameEvent, folder.CreationTime.ToString());
Non va.
Forse devo aggiungere dei wildcard?
|
|
Mikelius (Member)
Expert
Messaggi: 525
Iscritto: 14/04/2017
|
Postato originariamente da fosforo:
MA se provo:
if (folder.Name == TextBox.tostring())
this.dataGridView1.Rows.Add(folder.Name, NameEvent, folder.CreationTime.ToString());
|
if (folder.Name == TextBox. Text)
Se vuoi il contenuto della textBox (il ToString() è superfluo visto che è già una stringa)
anche se io userei il metodo apposito
Codice sorgente - presumibilmente Plain Text |
String.Compare(folder.Name, TextBox.Text )
|
|
|
Carlo (Member)
Guru
Messaggi: 1344
Iscritto: 29/01/2018
|
Postato originariamente da fosforo:
Grazie Mikelius
Una domanda:
Sto provando cosi:
if (folder.Name == "62")
this.dataGridView1.Rows.Add(folder.Name, NameEvent, folder.CreationTime.ToString());
e funziona.
MA se provo:
if (folder.Name == TextBox.tostring())
this.dataGridView1.Rows.Add(folder.Name, NameEvent, folder.CreationTime.ToString());
Non va.
Forse devo aggiungere dei wildcard?
|
Forse non è il tuo caso, ma quando tratti numeri come stringhe, è buona cosa eliminare gli eventuali invisibili spazi, prima e dopo del numero in formato testo, con l'istruzione .Trim.
MA se provo (corretto):
if (folder.Name == TextBox.Text.Trim())
this.dataGridView1.Rows.Add(folder.Name, NameEvent, folder.CreationTime.ToString());
Anche nell'esempio di Mikelius:
String.Compare(folder.Name, TextBox.Text.Trim())
Prova ad inserire nella TextBox " 62", vedrai che con .Trim l'input sarà riconosciuto come "62" Ultima modifica effettuata da Carlo il 05/06/2018 alle 12:20
in programmazione tutto è permesso |
|
fosforo (Normal User)
Expert
Messaggi: 391
Iscritto: 06/04/2009
|
Una ulteriore domanda:
se in una textbox non scrivo nulla questo if non funziona e non capisco perché:
if (txtName.ToString().Trim() == "")
…...
|
|
Mikelius (Member)
Expert
Messaggi: 525
Iscritto: 14/04/2017
|
Postato originariamente da fosforo:
Una ulteriore domanda:
se in una textbox non scrivo nulla questo if non funziona e non capisco perché:
if (txtName.ToString().Trim() == "")
…... |
nulla non significa stringa vuota. Nulla è nulla, stringa vuota è una stringa senza nessun carattere.
Secondo, txtName è la textBox? se si devi usare la proprietà TEXT. e' quella che contiene il testo del controllo!!! |
|