读取.resx文件并在datagridview中显示内容

本文关键字:显示 datagridview resx 文件 读取 | 更新日期: 2023-09-27 18:26:04

我创建了一个应用程序,必须在其中加载.resx文件并在datagridview中显示.resx的内容。我正在通过菜单条加载.resx。我尝试使用以下代码,但没有显示任何数据。。

private void openToolStripMenuItem_Click(object sender, EventArgs e)
{
    OpenDialog.Reset();
    OpenDialog.InitialDirectory = Directory.GetCurrentDirectory();
    OpenDialog.RestoreDirectory = false;
    OpenDialog.Filter = "Resource files (*.resx)|*.resx";
    if (OpenDialog.ShowDialog() == DialogResult.OK)
    {
        StreamReader MyStream = new StreamReader(OpenDialog.FileName); 
        BBookGrid.DataSource = null;
        m_BBookTable.Clear();  //Clear the existing table
        BBookGrid.DataSource = m_BBookTable;
        try
        {
            while (true)
            {
                String MyLine = MyStream.ReadLine();
                if (MyLine == null)
                {
                    break;
                }
                else if (MyLine.Length != 0)
                {
                    String[] fields = MyLine.Split(Separator.ToCharArray());
                    if (fields.GetLength(0) == NumColumns)
                    {
                        m_BBookTable.Rows.Add(m_BBookTable.NewRow());
                        m_BBookTable.Rows[m_BBookTable.Rows.Count - 1][SourceCol]
                                   = fields[0].Trim();
                        m_BBookTable.Rows[m_BBookTable.Rows.Count - 1][TargetCol] 
                                  = fields[1].Trim(); 
                    }
                }
            }
        }
        catch (Exception ex)
        {
            MessageBox.Show("Fatal Error" + ex.ToString());
            Application.Exit();
        }
    }
}

读取.resx文件并在datagridview中显示内容

您需要在填充数据后设置DataSource!

private void openToolStripMenuItem_Click(object sender, EventArgs e)
{
    OpenDialog.Reset();
    OpenDialog.InitialDirectory = Directory.GetCurrentDirectory();
    OpenDialog.RestoreDirectory = false;
    OpenDialog.Filter = "Resource files (*.resx)|*.resx";
    if (OpenDialog.ShowDialog() == DialogResult.OK)
    {
        StreamReader MyStream = new StreamReader(OpenDialog.FileName); 
        BBookGrid.DataSource = null;
        m_BBookTable.Clear();  //Clear the existing table
        ///BBookGrid.DataSource = m_BBookTable;  ///  this line should be
        // down after the catch i.e. after the data source is filled!!
        try
        {
            while (true)
            {
                String MyLine = MyStream.ReadLine();
                if (MyLine == null)
                {
                    break;
                }
                else if (MyLine.Length != 0)
                {
                    String[] fields = MyLine.Split(Separator.ToCharArray());
                    if (fields.GetLength(0) == NumColumns)
                    {
                        m_BBookTable.Rows.Add(m_BBookTable.NewRow());
                        m_BBookTable.Rows[m_BBookTable.Rows.Count - 1][SourceCol]
                                   = fields[0].Trim();
                        m_BBookTable.Rows[m_BBookTable.Rows.Count - 1][TargetCol] 
                                  = fields[1].Trim(); 
                    }
                }
            }
        }
        catch (Exception ex)
        {
            MessageBox.Show("Fatal Error" + ex.ToString());
            Application.Exit();
        }
        // now that is has data we set the data source!  
        BBookGrid.DataSource = m_BBookTable;
    }
}