web-dev-qa-db-fra.com

Nom de fichier par défaut SaveFileDialog

Je voudrais créer SaveFileDialog avec default file name à partir de la valeur DataGridViewCells

Jusqu'à présent, j'ai essayé

private void buttonSave_Click(object sender, EventArgs e) 
{
    //first
    //mySaveFileDialog.FileName = myDataGridView.SelectedCells[2].Value.ToString();
    //second
    SaveFileDialog saveFile = new SaveFileDialog();
    saveFile.FileName = myDataGridView.SelectedCells[2].Value.ToString();
    saveFile.ShowDialog();
}

Quelqu'un peut-il m'aider à résoudre ce problème?

15
Neversaysblack

SaveFileDialog possède une propriété prévue à cet effet: DefaultFileName avec Silverlight ou FileName avec .NET

Votre code (non compilable) de la question deviendrait:

    private void buttonSave_Click(object sender, EventArgs e) 
    {
        SaveFileDialog mySaveFileDialog = new SaveFileDialog();
        //Silverlight
        mySaveFileDialog.DefaultFileName = myDataGridView.SelectedCells[2].Value.ToString();
        //.NET
        mySaveFileDialog.FileName = myDataGridView.SelectedCells[2].Value.ToString();
    }
19
M.Babcock

Le problème est que vous devez utiliser:

myDataGridView.SelectedCells[0].Value.ToString();

au lieu de

myDataGridView.SelectedCells[2].Value.ToString();

Jusqu'à ce que vous ne sélectionniez pas 3 cellules ou plus avec la souris ou quoi que ce soit. Vous pouvez indexer comme [2]

private void buttonSave_Click(object sender, EventArgs e) 
{
    SaveFileDialog saveFile = new SaveFileDialog();
    saveFile.FileName = myDataGridView.SelectedCells[0].Value.ToString();
    saveFile.ShowDialog();
}

Est-ce que ça marche pour toi?

4
Marek

Votre code doit ressembler à ceci:

private void buttonSave_Click(object sender, EventArgs e) 
{
    SaveFileDialog saveFile = new SaveFileDialog();
    saveFile.FileName = myDataGridView.SelectedCells[2].Value.ToString();
    saveFile.ShowDialog();
}

Utilisez FileName mais définissez le nom de fichier avant d'afficher la boîte de dialogue.

3
Darius Miliauskas

Veuillez essayer ceci dans une simple application WinForm:

    static void Main()
    {
        var saveFile = new SaveFileDialog();
        saveFile.FileName = "myfile.txt";
        saveFile.ShowDialog();
        string fileName = saveFile.FileName ;
        MessageBox.Show(fileName);
    }

Ça marche!

1
Renaud Bancel