Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在SaveFileDialog中处理结果 public void SaveAs() { 如果(dataGridView1.ColumnCount>=2) { SaveFileDialog SaveFileDialog=新建SaveFileDialog(); saveFileDialog.Filter=“Excel文件(*.xls)|*.xls”; saveFileDialog.FilterIndex=0; saveFileDialog.RestoreDirectory=true; saveFileDialog.CreatePrompt=true; saveFileDialog.Title=“将Excel文件导出到”; saveFileDialog.ShowDialog(); myStream; myStream=saveFileDialog.OpenFile(); StreamWriter sw=新的StreamWriter(myStream,System.Text.Encoding.GetEncoding(-0)); 字符串str=“”; 尝试 { for(int i=0;i0) { str+=“\t”; } str+=dataGridView1.Columns[i].HeaderText; } sw.WriteLine(str); 对于(int j=0;j_C#_Dialog - Fatal编程技术网

C# 如何在SaveFileDialog中处理结果 public void SaveAs() { 如果(dataGridView1.ColumnCount>=2) { SaveFileDialog SaveFileDialog=新建SaveFileDialog(); saveFileDialog.Filter=“Excel文件(*.xls)|*.xls”; saveFileDialog.FilterIndex=0; saveFileDialog.RestoreDirectory=true; saveFileDialog.CreatePrompt=true; saveFileDialog.Title=“将Excel文件导出到”; saveFileDialog.ShowDialog(); myStream; myStream=saveFileDialog.OpenFile(); StreamWriter sw=新的StreamWriter(myStream,System.Text.Encoding.GetEncoding(-0)); 字符串str=“”; 尝试 { for(int i=0;i0) { str+=“\t”; } str+=dataGridView1.Columns[i].HeaderText; } sw.WriteLine(str); 对于(int j=0;j

C# 如何在SaveFileDialog中处理结果 public void SaveAs() { 如果(dataGridView1.ColumnCount>=2) { SaveFileDialog SaveFileDialog=新建SaveFileDialog(); saveFileDialog.Filter=“Excel文件(*.xls)|*.xls”; saveFileDialog.FilterIndex=0; saveFileDialog.RestoreDirectory=true; saveFileDialog.CreatePrompt=true; saveFileDialog.Title=“将Excel文件导出到”; saveFileDialog.ShowDialog(); myStream; myStream=saveFileDialog.OpenFile(); StreamWriter sw=新的StreamWriter(myStream,System.Text.Encoding.GetEncoding(-0)); 字符串str=“”; 尝试 { for(int i=0;i0) { str+=“\t”; } str+=dataGridView1.Columns[i].HeaderText; } sw.WriteLine(str); 对于(int j=0;j,c#,dialog,C#,Dialog,当我打开保存窗口并通过单击取消决定不保存DataGridView1时,我发现一个错误索引超出了数组的边界。 myStream=saveFileDialog.OpenFile() 我不知道这里出了什么问题。您的罪犯代码在这里: public void SaveAs() { if(dataGridView1.ColumnCount>=2) { SaveFileDialog saveFileDialog = new SaveFileDia

当我打开保存窗口并通过单击
取消
决定不保存
DataGridView1
时,我发现一个错误
索引超出了数组的边界。
myStream=saveFileDialog.OpenFile()


我不知道这里出了什么问题。

您的罪犯代码在这里:

 public void SaveAs()
    {
        if(dataGridView1.ColumnCount>=2)
        {
        SaveFileDialog saveFileDialog = new SaveFileDialog();
        saveFileDialog.Filter = "Excel files (*.xls)|*.xls";
        saveFileDialog.FilterIndex = 0;
        saveFileDialog.RestoreDirectory = true;
        saveFileDialog.CreatePrompt = true;
        saveFileDialog.Title = "Export Excel File To";
        saveFileDialog.ShowDialog();

        Stream myStream;

        myStream = saveFileDialog.OpenFile();
        StreamWriter sw = new StreamWriter(myStream, System.Text.Encoding.GetEncoding(-0));
        string str = "";
        try
        {
            for (int i = 0; i < dataGridView1.ColumnCount; i++)
            {
                if (i > 0)
                {
                    str += "\t";
                }
                str += dataGridView1.Columns[i].HeaderText;
            }
            sw.WriteLine(str);
            for (int j = 0; j < dataGridView1.Rows.Count; j++)
            {
                string tempStr = "";
                for (int k = 0; k < dataGridView1.Columns.Count; k++)
                {
                    if (k > 0)
                    {
                        tempStr += "\t";
                    }
                    tempStr += dataGridView1.Rows[j].Cells[k].Value.ToString();
                }
                sw.WriteLine(tempStr);
            }
            sw.Close();
            myStream.Close();
        }
        catch (Exception e)
        {
          //  MessageBox.Show(e.ToString());
        }
        finally
        {
            sw.Close();
            myStream.Close();
        }

    }
        else
            MessageBox.Show("No data to save", "OK",
MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk);
    }    
应该是这样的:

saveFileDialog.ShowDialog();
Stream myStream;
myStream = saveFileDialog.OpenFile();

如果您关闭对话框(通过“x”)或按“取消”,则您的
saveFileDialog
中有一些“空”值,您可以尝试并引用这些值(这会给您带来错误)。

您的罪魁祸首代码如下:

 public void SaveAs()
    {
        if(dataGridView1.ColumnCount>=2)
        {
        SaveFileDialog saveFileDialog = new SaveFileDialog();
        saveFileDialog.Filter = "Excel files (*.xls)|*.xls";
        saveFileDialog.FilterIndex = 0;
        saveFileDialog.RestoreDirectory = true;
        saveFileDialog.CreatePrompt = true;
        saveFileDialog.Title = "Export Excel File To";
        saveFileDialog.ShowDialog();

        Stream myStream;

        myStream = saveFileDialog.OpenFile();
        StreamWriter sw = new StreamWriter(myStream, System.Text.Encoding.GetEncoding(-0));
        string str = "";
        try
        {
            for (int i = 0; i < dataGridView1.ColumnCount; i++)
            {
                if (i > 0)
                {
                    str += "\t";
                }
                str += dataGridView1.Columns[i].HeaderText;
            }
            sw.WriteLine(str);
            for (int j = 0; j < dataGridView1.Rows.Count; j++)
            {
                string tempStr = "";
                for (int k = 0; k < dataGridView1.Columns.Count; k++)
                {
                    if (k > 0)
                    {
                        tempStr += "\t";
                    }
                    tempStr += dataGridView1.Rows[j].Cells[k].Value.ToString();
                }
                sw.WriteLine(tempStr);
            }
            sw.Close();
            myStream.Close();
        }
        catch (Exception e)
        {
          //  MessageBox.Show(e.ToString());
        }
        finally
        {
            sw.Close();
            myStream.Close();
        }

    }
        else
            MessageBox.Show("No data to save", "OK",
MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk);
    }    
应该是这样的:

saveFileDialog.ShowDialog();
Stream myStream;
myStream = saveFileDialog.OpenFile();
如果您关闭对话框(通过“x”)或按“取消”,则您的
saveFileDialog
中有一些“空”值,您可以尝试并引用这些值(这会给您带来错误)。

该函数返回一个
对话框结果
,以确定采取了哪些操作。在继续之前,只需检查返回值即可。例如:

if (saveFileDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK) {
    // code here for user pressing OK instead of the 'X' or 'Cancel'
    Stream myStream = saveFileDialog.OpenFile();
}
函数返回一个
对话框result
,以确定采取了什么操作。在继续之前,只需检查返回值即可。例如:

if (saveFileDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK) {
    // code here for user pressing OK instead of the 'X' or 'Cancel'
    Stream myStream = saveFileDialog.OpenFile();
}