选择组合框时,必须出现openFileDialog

时间:2011-08-24 13:22:43

标签: c# openfiledialog

我制作了一个方法,以便当您点击浏览文件时,会出现openDialogBox。但事实并非如此。有什么问题?

enter image description here

这是我打开OpenFileDialog的方法:

  public void Lista()
        {
            string[] col2 = new string[dataGridView1.Rows.Count];

            for (int i = 0; i < dataGridView1.Rows.Count; i++)

                    if (col2[i] == "Browse From File...")
                    {
                        DialogResult result2 = openFileDialog2.ShowDialog();
                        if (result2 == DialogResult.OK)
                        {
                           // filename = openFileDialog1.FileName;
                        }
        }
        }

这是我调用Lista方法的方法。

 private void button1_Click(object sender, EventArgs e)
            {
                //  opens window **BROWSE**

                openFileDialog1.Title = "Choose File CSV  ";

                string filename = "";
                DialogResult result = openFileDialog1.ShowDialog();
                if (result == DialogResult.OK)
                {
                    filename = openFileDialog1.FileName;

                    textBox1.Text = filename;






                    string line;
                    // Read the file and display it line by line.


                    System.IO.StreamReader file = new System.IO.StreamReader(textBox1.Text);

                    stringforData = file.ReadLine();     
                    while ((line = file.ReadLine()) != null)
                    {
                        //read inside the table
                        fileList.Add(line.Split(';'));
                    }

                    file.Close();



                    this.ToDataGrid();
                    this.Lista();
                }
            }

1 个答案:

答案 0 :(得分:0)

DataGridView只对所有行都有一个编辑控件。以下是我处理类似情况的方法,首先尝试委托EditControlShowing事件

命名空间WindowsFormsApplication1 {     公共部分类Form1:表格     {         公共Form1()         {             的InitializeComponent();         }

    OpenFileDialog ofd = new  OpenFileDialog();
    private void Form1_Load(object sender, EventArgs e)
    {
    dataGridView1.Columns.Add("ID", "Product ID");

    DataGridViewComboBoxColumn comboxboxCol = new DataGridViewComboBoxColumn();
    comboxboxCol.HeaderText = "Type";
    comboxboxCol.Items.Add("Obj1");
    comboxboxCol.Items.Add("Obj2");
    comboxboxCol.Items.Add("Obj3");

    dataGridView1.Columns.Add(comboxboxCol);

    dataGridView1.EditingControlShowing += new DataGridViewEditingControlShowingEventHandler(Grid_EditingControlShowing);
    }

    void Grid_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
    {
        ComboBox combo = e.Control as ComboBox;
        if (combo != null)
        {
            // the event to handle combo changes
            EventHandler comboDelegate = new EventHandler(
                (cbSender, args) =>
                {
                    ofd.ShowDialog();
                });

            // register the event with the editing control
            combo.SelectedValueChanged += comboDelegate;

        }

    }
}

}

希望这能解决您的问题