2014-01-18 37 views
8

我想從價值創造SaveFileDialogdefault file nameDataGridViewCells默認文件名SaveFileDialog

到目前爲止,我試過

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(); 
} 

誰能幫助我解決這個問題?

+2

** **如何失敗? –

+0

2個關於不給出默認文件名的代碼...只是空白就像沒有代碼 – Neversaysblack

+0

你有兩個SaveFileDialog mySaveFileDialog(可能是一個組件放在你的表單上)和saveFile(由程序生成)。 –

回答

12

SaveFileDialog有用於這一目的的屬性:DefaultFileName使用Silverlight或FileName使用.NET

從您的問題(不可編譯)代碼將變爲:

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(); 
    } 
+3

我沒有看到'DefaultFileName'屬性。只要一個'FileName',並將其設置爲一個特定值,就會在運行時顯示對話框時將其顯示在「文件名」行上。 –

+1

@GrantWinney - 答案中包含的鏈接另有說明。 –

+1

人。這些文檔可能適用於Silverlight。 OP發佈的代碼類似於WinForms,但實際上沒有指定。 –

1

請試試這個在簡單的WinForm應用程序:

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

它的工作原理!

+0

.ShowDialog()應該去.FileName 。 –

3

的問題是,你需要使用:的

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

代替

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

直到你沒有選擇3個以上的細胞與小鼠或任何責任。你可以像[2]

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

指數這是否對你的工作?

0

打印面板

public Bitmap MemoryImage; 
    public void GetPrintArea(Panel pn1) 
    {  
     MemoryImage = new Bitmap(panel13.Width, pn1.Height); 
     pn1.DrawToBitmap(MemoryImage, new Rectangle(0, 0, pn1.Width, pn1.Height)); 
    } 
    protected override void OnPaint(PaintEventArgs e) 
    { 
     if (MemoryImage != null) 
     { 
      e.Graphics.DrawImage(MemoryImage, 0, 0); 
      base.OnPaint(e); 
     } 
    } 
    void printdoc1_PrintPage(object sender, PrintPageEventArgs e) 
    { 




     Rectangle pagearea = e.PageBounds; 
     e.Graphics.DrawImage(MemoryImage, (pagearea.Width/2) - (this.panel13.Width/2), this.panel13.Location.Y); 


    } 


     Bitmap bmp = new Bitmap(MemoryImage.Width, MemoryImage.Height); 
     panel13.DrawToBitmap(bmp, panel13.Bounds); 

     saveFileDialog1.ShowDialog(); 
     saveFileDialog1.Title = "Save"; 
     saveFileDialog1.Filter = "JPeg Image|*.jpg|Bitmap Image|*.bmp|Gif Image|*.gif"; 

     bmp.Save(saveFileDialog1.FileName); 

2

您的代碼應如下方式,所有的控件:

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

使用FileName但顯示對話框之前設置文件名。