2012-04-25 12 views

Odpowiedz

333

Coś takiego powinno być to, czego potrzebujesz

private void button1_Click(object sender, RoutedEventArgs e) 
{ 
    // Create OpenFileDialog 
    Microsoft.Win32.OpenFileDialog dlg = new Microsoft.Win32.OpenFileDialog(); 



    // Set filter for file extension and default file extension 
    dlg.DefaultExt = ".png"; 
    dlg.Filter = "JPEG Files (*.jpeg)|*.jpeg|PNG Files (*.png)|*.png|JPG Files (*.jpg)|*.jpg|GIF Files (*.gif)|*.gif"; 


    // Display OpenFileDialog by calling ShowDialog method 
    Nullable<bool> result = dlg.ShowDialog(); 


    // Get the selected file name and display in a TextBox 
    if (result == true) 
    { 
     // Open document 
     string filename = dlg.FileName; 
     textBox1.Text = filename; 
    } 
} 
+11

if (result.HasValue && result.Value) zamiast if (result == true) – eflles

+2

@efles jaka jest wartość, jaką zapewnia w stosunku do oficjalnego kodu przykładowego na http://msdn.microsoft.com/en- us/library/microsoft.win32.openfiledialog.aspx? –

+3

@eflles Próbka jest poprawna technicznie. Z http://msdn.microsoft.com/en-us/library/2cf62fcy.aspx: * Podczas wykonywania porównań z typami zerowymi, jeśli wartość jednego z typów zerowalnych jest null, a druga nie jest, wszystkie porównania oceniają Fałszywe, z wyjątkiem! = (nie równe). * Przypuszczam jednak, że można argumentować, czy jest to wykorzystanie tej techniczności (osobiście uważam, że w tym przypadku jest OK). –

16
var ofd = new Microsoft.Win32.OpenFileDialog() {Filter = "JPEG Files (*.jpeg)|*.jpeg|PNG Files (*.png)|*.png|JPG Files (*.jpg)|*.jpg|GIF Files (*.gif)|*.gif"}; 
var result = ofd.ShowDialog(); 
if (result == false) return; 
textBox1.Text = ofd.FileName;