【问题标题】:Default Filename SaveFileDialog默认文件名 SaveFileDialog
【发布时间】:2014-02-07 14:09:14
【问题描述】:

我想用 default file name 从值 DataGridViewCells 创建 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 代码关于不提供默认文件名...只是空的,就像那里没有代码一样
  • 您有两个 SaveFileDialog mySaveFileDialog(可能是您的表单上放置的一个组件)和 saveFile(由程序构建)。
  • @pcnThird 是的,我忘记在我的帖子中包含它
  • @RenaudBancelDAVEO 我在运行程序时只使用一个...在这篇文章中,我上传了 2 个代码以供展示,我已经尝试了其中两个
  • @GrantWinney winForms 平台

标签: c# .net savefiledialog


【解决方案1】:

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

【讨论】:

  • @GrantWinney - 答案中包含的链接以其他方式显示。
  • @GrantWinney - 我总是忘记 Silverlight 的存在......我会调整我的答案以考虑真实平台
  • @M.Babcock 我也找不到“defaultFileName”属性。是的,我使用的是 WinForms 平台
  • @katik - 你能描述一下这里的 failed 是什么意思吗?您显示的属性对于 Winforms 来说是正确的,因此了解正在发生的事情很重要。
  • @M.Babcock 我上面使用的2个代码没有给出文件名......就像那个代码没有任何效果......我尝试从属性窗口“mySaveFileDialog”设置它......如果我只使用像'test'默认文件名这样的静态字符串,它运行得很好......但是当它来自变量时我有点难
【解决方案2】:

请在一个简单的 WinForm 应用程序中试试这个:

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

有效!

【讨论】:

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

这对你有用吗?

【讨论】:

    【解决方案4】:

    打印面板中的所有控件

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

    【讨论】:

      【解决方案5】:

      您的代码应如下所示:

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

      使用FileName,但在显示对话框之前设置文件名。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多