浏览文件路径Datagridview

时间:2017-03-02 15:08:23

标签: c# winforms datagridview

我在Windows窗体中创建了一个DataGridView,我在其中加载了app.config文件数据。这是将数据加载到DGV中的代码:

  _settings = new List<AppSettingsClass>();

    doc.Load(Path.Combine(path, SelectConfigComboBox.SelectedItem.ToString(), "app.config"));
    XmlNodeList nodes = doc.DocumentElement.SelectNodes("/configuration/appSettings/add");
    for (int i = 0; i < nodes.Count; i++)
    {
      var item = new AppSettingsClass
    {
      Key = nodes[i].Attributes[0].Value,
      Value = nodes[i].Attributes[1].Value
    };

      settings.Add(item);
    }
      BindDataGrid();
      dataGridView1.AllowUserToAddRows = true;

我有一些列有文件路径作为数据。我想创建一个浏览按钮,以便用户可以选择路径而不是手动输入。那可能吗?如果可以,有人可以解释我如何做到这一点。

我知道它应该在这个方法中,但我不知道我怎么能这样做:

private void dataGridView1_CellContentClick_1(object sender, DataGridViewCellEventArgs e)
{
//INSIDE THIS
}

2 个答案:

答案 0 :(得分:4)

这应该是你的方法。

private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
    if (e.ColumnIndex == 1 && e.RowIndex == 2)
    {
        var dialog = new OpenFileDialog();
        if (dialog.ShowDialog() == DialogResult.OK)
        {
            dataGridView1[e.ColumnIndex, e.RowIndex].Value = dialog.FileName;
        }
    }
}

答案 1 :(得分:0)

    private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
    {
        if (e.ColumnIndex == 1 && dataGridView1["Key", e.RowIndex].Value?.ToString() == "SomePathKey")
        {
            var dialog = new OpenFileDialog();
            if (dialog.ShowDialog() == DialogResult.OK)
            {
                dataGridView1["Value", e.RowIndex].Value = dialog.FileName;
            }
        }
    }