Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/300.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# 合并两列应适用于datagridview中的所有页面_C#_Datagridview - Fatal编程技术网

C# 合并两列应适用于datagridview中的所有页面

C# 合并两列应适用于datagridview中的所有页面,c#,datagridview,C#,Datagridview,我需要读取文件并在Datagridview中显示 注意:一个文件包含1000行,但我必须在加载时只显示100行,单击“下一步”按钮后,它将加载接下来的100行。我已经完成了这个要求,它工作得很好 我需要在单击按钮时合并两列。单击按钮后,将打开一个新窗口,在该窗口中,我们可以选择要合并并显示在Datagridview中的列。当我这样做时,它只合并当前页面上的列(即仅合并100行),但我希望所有页面都合并(全部合并1000行)。 谁能解决我的问题?下面是我粘贴用于合并两列的代码: 表格1: priv

我需要读取文件并在Datagridview中显示

注意:一个文件包含1000行,但我必须在加载时只显示100行,单击“下一步”按钮后,它将加载接下来的100行。我已经完成了这个要求,它工作得很好

我需要在单击按钮时合并两列。单击按钮后,将打开一个新窗口,在该窗口中,我们可以选择要合并并显示在Datagridview中的列。当我这样做时,它只合并当前页面上的列(即仅合并100行),但我希望所有页面都合并(全部合并1000行)。 谁能解决我的问题?下面是我粘贴用于合并两列的代码:

表格1:

private void btnMerge_Click(object sender, EventArgs e)
{
    frmMerge fs = new frmMerge(dataGridView1);
    fs.cmbColumn1.DataSource = cmbList;

    for (int i = 0; i <= cmbList.Count - 1; i++)
    {
        fs.cmbColumn2.Items.Add(cmbList[i]);
    }
    fs.ShowDialog();
}
表单2:(单击合并按钮后,另一个窗口打开,其中包含合并按钮和组合框)

private void btnMerge\u单击(对象发送者,事件参数e)
{
DataGridViewTextBoxColumn dgvctime=新DataGridViewTextBoxColumn();
dgvctime.Name=cmbColumn1.Text;
dgvctime.HeaderText=cmbColumn1.Text;
dataGridView1.Columns.Add(dgvctime);
dataGridView1.Rows.Add(dgvctime);

对于(int i=0;我认为您需要阅读符合该要求的链接和发布代码。现在代码中真正重要的内容缺失了。比如什么是
MyFOrmat
LoadPage
的代码在哪里?不要只放
LoadPage
。请确保您提供了一个。是的,我已经删除了这些注释并编辑了我的查询y、 根据您的评论,我试图最小化我的查询。如果不清楚,很抱歉。但是您能帮我解决这个问题吗。
private void button1_Click(object sender, EventArgs e)
{
    OpenFileDialog openFileDialog1 = new OpenFileDialog();

    openFileDialog1.InitialDirectory = "Desktop";
    openFileDialog1.Filter = "dat files (*.DAT)|*.DAT|All files (*.*)|*.*";
    openFileDialog1.FilterIndex = 2;
    openFileDialog1.RestoreDirectory = true;

    if (openFileDialog1.ShowDialog() == DialogResult.OK)
    {
        try
        {
            FileName = openFileDialog1.FileName;
            string text = System.IO.File.ReadAllText(FileName);
        datfile = text.Split(new string[] { "\r\n", "\n" }, StringSplitOptions.None);
            //Added on 2015-12-02
            maxRec = datfile.Length - 1;
            PageCount = maxRec / pageSize;
            LoadPage(MyFOrmat);
        }
        catch (Exception ex)
        {
            MessageBox.Show("Error: Could not read file from disk. Original error: " + ex.Message);
        }
    }
 private void btnMerge_Click(object sender, EventArgs e)
        {
 DataGridViewTextBoxColumn dgvctime = new DataGridViewTextBoxColumn();
            dgvctime.Name = cmbColumn1.Text;
            dgvctime.HeaderText = cmbColumn1.Text;
            dataGridView1.Columns.Add(dgvctime);
            dataGridView1.Rows.Add(dgvctime);
            for (int i = 0; i <= dgvMerge.Rows.Count - 1; i++)
            {
                dataGridView1.Rows[i].Cells[cmbColumn1.Text].Value = dgvMerge.Rows[i].Cells[cmbColumn1.Text].Value + " " + dgvMerge.Rows[i].Cells[cmbColumn2.Text].Value;
            }
        }

LOADPAGE:

  public void LoadPage(string Format, bool isFindAndReplace = false)
        {
            int startRec;
            int endRec;

            if (currentPage == PageCount)
            {
                endRec = maxRec;
            }
            else
            {
                endRec = pageSize * currentPage;
            }

            dataGridView1.Rows.Clear();
            if (recNo == 0)
            {
                dataGridView1.Columns.Clear();
            }

            int rowindex = 0;
            startRec = recNo;
            for (int RowCount = startRec; RowCount <= endRec; RowCount++)
            {
                if (datfile[RowCount].ToString() != "")
                {
                    if (RowCount == 0)
                    {
                        string[] column = datfile[RowCount].Split('þ');
                        for (int i = 0; i < column.Length - 1; i++)
                        {
                            if (column[i].ToString() != "" && column[i].ToString() != "\u0014")
                            {
                                DataGridViewTextBoxColumn dgvtxtcountry = new DataGridViewTextBoxColumn();
                                dgvtxtcountry.HeaderText = column[i].ToString();
                                dgvtxtcountry.Name = column[i].ToString();
                                dataGridView1.Columns.Add(dgvtxtcountry);
                                cmbList.Add(column[i]);
                                // dataGridView1.Columns["Sent Date"].DefaultCellStyle.Format = "dd/MM/yyyy";
                                i += 1;
                            }
                        }
                    }

                    if (RowCount != 0)
                    {
                        dataGridView1.Rows.Add();
                        string[] column = datfile[RowCount].Split('þ');
                        int index = 0;
                        for (int i = 1; i < column.Length - 1; i++)
                        {
                            if (column[i].ToString() != "\u0014")
                            {
                                if (i == 3)
                                {
                                    dataGridView1.Rows[rowindex].Cells[index].Value = Convert.ToDateTime(column[i]).ToString(Format);
                                }
                                else
                                { dataGridView1.Rows[rowindex].Cells[index].Value = column[i].Trim('þ'); }

                                if (isFindAndReplace && index == f.cmbColumnCombo.SelectedIndex)
                                {

                                    if ((column[i]).Contains(f.txtfind.Text))
                                        dataGridView1.Rows[rowindex].Cells[index].Value = column[i].Replace(f.txtfind.Text, f.txtreplace.Text);
                                }
                                index += 1;
                                i += 1;
                            }
                        }
                        rowindex += 1;
                    }
                }
                recNo += 1;
                //IsDateFormatted = false;
            }
        }

About MyFormat:

private void DateFormat_SelectedIndexChanged(object sender, EventArgs e)
        {

            ComboBox objCombobox = (ComboBox)sender;
            MyFOrmat = objCombobox.SelectedItem.ToString();
            if (recNo > 0)
                recNo = recNo - 30;
            LoadPage(MyFOrmat);
        }