2013-06-18 13 views
10

Ho impostato il nome file predefinito è answer_XXXXXX.csv in OpenFileDialog. Ma viene visualizzato in questo modo. Il nome predefinito "answer_XXXXXX.csv" non viene visualizzato pieno. a busy catNome predefinito con OpenFileDialog C#?

Quindi faccio clic sulla casella combinata Nome file. Esso mostra esattamente

a busy cat

Come posso risolvere il problema?

Grazie in anticipo.

+0

Questo succede anche con altri valori predefiniti? Ad esempio, come appare 'foobar_FOOBAR.csv'? –

+3

Penso che questo sia un bug del sistema .. https://connect.microsoft.com/VisualStudio/feedback/details/525070/openfiledialog-show-part-of-file-name-in-win7# – Bolu

+0

Che potrebbe essere il bug, ma non ho trovato alcun problema con la mia applicazione. Ho provato il nome come answer_XXXXXX123456.csv, non ha dato alcun problema. Ma sì, se fornisci un nome più lungo, allora per vedere il nome del file devi scorrere sul lato sinistro per vedere il nome completo del file. :) –

risposta

7

C'è una piccola soluzione per questo. Avere sotto la linea prima di chiamare ShowDialog().

openfiledialog.ShowHelp = true; 

Esempio:

OpenFileDialog openfiledialog = new OpenFileDialog(); 
    openfiledialog.ShowHelp = true; 
    openfiledialog.FileName = "answer_XXXXXXX.csv"; 
    openfiledialog.ShowDialog(); 

Per maggiori:

http://connect.microsoft.com/VisualStudio/feedback/details/525070/openfiledialog-show-part-of-file-name-in-win7

+0

Grazie mille. Questo è quello che mi serve –

+1

Se questa risposta è accettata, Pls la contrassegna come risposta. –

+1

Mostra una finestra di dialogo con un layout molto diverso (Win 10). – xmedeko

4

Ecco un altro lavoro in giro, è possibile utilizzare più complesse funzioni API Win32 per accedere alla casella combinata nome del file e fare tutto ciò si desidera ma questo lavoro utilizza SendKeys, non ho il tempo di scavare in funzioni API Win32 in questo momento:

public Form1() 
    { 
     InitializeComponent(); 
     t.Interval = 100; 
     t.Tick += (s, e) => 
     { 
      SendKeys.Send("{HOME}+{END}"); 
      t.Stop(); 
     }; 
} 
Timer t = new Timer(); 
private void button1_Click(object sender, EventArgs e) 
{ 
     OpenFileDialog open = new OpenFileDialog(); 
     open.FileName = "I love .NET so much"; 
     t.Start(); 
     open.ShowDialog(); 
} 

Non riesco a spiegare questo errore ma ci sono alcuni problemi di funzionamento e quello sopra è uno di questi.

risposta
3

Re Re sembra essere la soluzione migliore, ho usato praticamente la stessa, ma forse un po 'più semplice (a quanto pare non ho avuto la reputazione di up-voto o un commento direttamente sul suo post):

OpenFileDialog oFileD = new OpenFileDialog(); 
oFileD.InitialDirectory = initialDir; 
oFileD.FileName = fileName; 
if (oFileD.FileName != "") 
{ 
    Timer t = new Timer(); 
    t.Interval = 100; 
    t.Tick += (s, e) => 
    { 
     SendKeys.Send("{HOME}+{END}"); 
     t.Stop(); 
    }; 
    t.Start(); 
} 
if (oFileD.ShowDialog() == DialogResult.OK) { 
    ... 
}