OpenFileDialog не появляется - PullRequest
       38

OpenFileDialog не появляется

0 голосов
/ 06 октября 2011

У меня есть DataGridView, и я хочу, чтобы каждый раз, когда вы щелкали по Обзор из файла ... , открывал openFileDialog.

enter image description here

Сделал это до сих пор, но это не работает.

private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
   string bbb = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString();
   if (bbb == "Browse From File...")
   {
       openFileDialog2.ShowDialog();
   }

Пробовал и эти, но ничего:

if (e.ColumnIndex.Equals = "Browse From File...")
if (dataGridView1.SelectedCells = "Browse From File...")   
if ((string)dataGridView1.SelectedCells[0].Value == "Browse From File...")
if (dataGridView1.Rows[1].Cells["Browse From File..."].Value.ToString() == "Browse From File...")
           {
               //openFileDialog2.ShowDialog();
           }

Ответы [ 2 ]

0 голосов
/ 06 октября 2011

Это то, что должно быть?

if (bbb.equals("Browse From File..."))
0 голосов
/ 06 октября 2011

Одним из решений было бы перехватить событие, когда отображаются элементы управления из сетки данных ( EditingControlsShowing ), и добавить обработчик SelectionChanged в поле со списком.

Примерно так:

    private void dataGridView_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
    {
        if (e.Control is ComboBox)
        {
            ComboBox cellComboBox = (ComboBox)e.Control;
            if (cellComboBox != null)
            {
                cellComboBox.SelectedIndexChanged += new EventHandler(cellComboBox_SelectedIndexChanged);
            }
        }
    }

    void cellComboBox_SelectedIndexChanged(object sender, EventArgs e)
    {
        DataGridViewComboBoxEditingControl comboBox = sender as DataGridViewComboBoxEditingControl;
        if (comboBox != null)
        {
            if (String.Compare(comboBox.Text, "Browse From File...") == 0)
            {
                openFileDialog.ShowDialog();
            }
        }
    }

Редактировать

Чтобы добавить обработчик событий в сетку: перейдите в вид дизайна для вашей формы и щелкните правой кнопкой мыши сетку. Нажмите свойства в контекстном меню. В окне свойств нажмите кнопку «События» (изображение молнии) и найдите запись EditingControlShowing. Дважды щелкните пустое место, чтобы добавить обработчик событий. В коде страницы вы увидите пустой метод, похожий на * dataGridView1_EditingControlShowing *, в этом методе скопируйте / вставьте код из вышеуказанного метода. Кроме того, также скопируйте / вставьте в тот же исходный файл второй метод cellComboBox_SelectedIndexChanged.

...