2017-03-02 31 views
1

私はapp.configファイルデータをロードするWindowsフォーム内にDataGridViewを作成しました。これは、DGVにデータをロードするコードです。ファイルパスを参照Datagridview

_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

これはあなたの方法でなければなりません。私はCellClickイベント内でこのコードを入れてください、私はそれを理解していない

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; 
     } 
    } 
} 
+0

、? DGV内のすべてのセルではなく、1つの特定のセルに対してこの機能を動作させることは可能ですか? –

+0

テストした後にいくつかの編集を行いました。今すぐ試してみてください。わたしにはできる。 –

+0

ありがとうございます。私はそれを試してみましたが、何かをクリックすると何もしませんか?何か間違っていますか? –

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; 
      } 
     } 
    } 
+0

あなたの答えをありがとう、私はすべての細胞にこの機能を持っていないので、私は1つの特定の細胞を与えることができます、ただ1つの細胞。 –

+0

最初のifステートメントがその責任を負うべきです。 –

+0

@TamásSzabó私のDGVには2つの列があります。セル3の2番目の列に入れたいのですが、どのように追加できますか? –

関連する問題