Member 12226114 Ответов: 1

Передача выбранного элемента списка из ownedform в основную форму - C#


Привет, у меня есть datagridview в основной форме. Нажав на определенный столбец datagridview, он откроет вложенную форму или ownedform(динамически созданную). Собственная форма имеет список и кнопку ОК. Когда пользователь выбирает элемент из списка и нажимает кнопку ОК, выделенный текст должен появиться в ячейке datagridview. Но когда я нажал кнопку ОК, я не смог получить результат. Я тоже не получаю никаких ошибок.Вот код

ЗАПИСКА: Если использовать Textbox вместо listbox, я могу передать значение в datagridview. Я просто не знаю, как обращаться со списком, чтобы передать значение.

Код для динамического создания собственной формы и добавления элементов управления

private List


НАЖМИТЕ КНОПКУ ОБРАБОТЧИК СОБЫТИЙ НЕ РАБОТАЕТ (СПИСКА)

private void dbtn_Click_SIGTB(object sender, EventArgs e)
        {
            int rowidx = dataGridView3.CurrentCell.RowIndex;
            int colidx = dataGridView3.CurrentCell.ColumnIndex;
            foreach(ListBox lb in inputlistboxes)
            {
                string selected = lb.GetItemText(lb.SelectedItem);
                dataGridView2.Rows[rowidx].Cells[colidx].Value = selected;
            }
            
            foreach (Form frm in ownform)
               frm.Close();
        }


ОБРАБОТЧИК СОБЫТИЙ КНОПКИ-РАБОТА (ТЕКСТОВОЕ ПОЛЕ)

private void dbtn_Click_VARTB(object sender, EventArgs e)
        {
            int rowidx = dataGridView2.CurrentCell.RowIndex;
            int colidx = dataGridView2.CurrentCell.ColumnIndex;
            foreach (TextBox txt in inputTextBoxes)
                dataGridView2.Rows[rowidx].Cells[colidx].Value = txt.Text;
            foreach (Form frm in ownform)
                frm.Close();
        }


ЭЛЕМЕНТ СОДЕРЖИМОГО ЯЧЕЙКИ НАЖМИТЕ КНОПКУ

private void dataGridView3_CellContentClick(object sender, DataGridViewCellEventArgs e)
       {
           if (dataGridView3.CurrentCell.ColumnIndex.Equals(3))
           {
               ShowMyOwnedForm_SIGTB();
           }
       }


Что я уже пробовал:

частная dbtn_Click_SIGTB недействительным(объект отправителя, EventArgs в электронной)
{
инт rowidx = dataGridView3.CurrentCell.Параметр rowindex;
инт colidx = dataGridView3.CurrentCell.Значение columnindex;
по каждому элементу(элемент ListBox фунт в inputlistboxes)
{
выбранная строка = lb.GetItemText(lb. SelectedItem);
dataGridView2.Строк[rowidx].Клеток[colidx].Значение = выбор;
}

foreach (форма frm в собственной форме)
ФРМ.Рядом();
}

Member 12226114

ИЗВИНИТЕ, ЧТО ПРОПУСТИЛ КОД СОБСТВЕННОЙ ФОРМЫ. ДОБАВЛЕНИЕ ЗДЕСЬ,

личный список

1 Ответов

Рейтинг:
10

VR Karthikeyan

привет просто обновите свой dbtn_Click_SIGTB функция следующим образом,

private void dbtn_Click_SIGTB(object sender, EventArgs e)
{
    int rowidx = dataGridView3.CurrentCell.RowIndex;
    int colidx = dataGridView3.CurrentCell.ColumnIndex;
    foreach(ListBox lb in inputlistboxes)
    {
        string selected = lb.Items[lb.SelectedIndex].ToString(); //lb.GetItemText(lb.SelectedItem);
        dataGridView2.Rows[rowidx].Cells[colidx].Value = selected;
    }

    foreach (Form frm in ownform)
       frm.Close();
}


Member 12226114

привет, все еще не обновляюсь. есть еще какие-нибудь предложения, пожалуйста?