Member 12977712 Ответов: 1

Автоматическая проверка в C#


Итак, я пытаюсь использовать событие из C# в текстовое поле, которое может быть в состоянии после выбора чего-то из DataGridView вставить значения столбцов в текстовое поле, а затем детализировать информацию из того, что находится в текстовом поле.

Я не хочу использовать TextChanged

Что я могу сделать, чтобы после того, как значение появится в текстовом поле, оно перешло в DataGridView?

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

public bool ValidateText()
        {
            bool Isvalidated = false;

            try
            {
                SqlConnection con = new SqlConnection(cs.DBConnP);
                con.Open();

                adp = new SqlDataAdapter();
                adp.SelectCommand = new SqlCommand(@"", con);
                
                ds = new DataSet("ds");
                adp.Fill(ds);
                dtable = ds.Tables[0];

                adp.Fill(ds, "CargaCab");

                dataGridView1.DataSource = ds.Tables["CargaCab"].DefaultView;

                foreach (DataRow row in dt.Rows)
                {
                    int n = dataGridView1.Rows.Add();
                    dataGridView1.Rows[n].Cells[0].Value = row[0].ToString();
                    dataGridView1.Rows[n].Cells[1].Value = row[1].ToString();
                    dataGridView1.Rows[n].Cells[2].Value = row[2].ToString();
                    dataGridView1.Rows[n].Cells[3].Value = row[3].ToString();
                }

                dataGridView1.Columns[0].ReadOnly = true;
                dataGridView1.Columns[1].ReadOnly = true;
                dataGridView1.Columns[2].ReadOnly = true;
                dataGridView1.Columns[3].ReadOnly = false;

                con.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Erro\nDetalhes: " + ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
                Isvalidated = false;
            }
            return Isvalidated;
        }


private void txtCarga_Validating(object sender, CancelEventArgs e)
        {
            ValidateText();

            int LinhasAfetadas = 0;
            LinhasAfetadas = dataGridView1.RowCount;
            label1.Text = "Número de registos: " + LinhasAfetadas;
        }

CHill60

Ваш вопрос не совсем ясен. Однако, если бы я хотел обновить другой элемент управления информацией из текстового поля, я бы сделал обновление в текстовом поле.Утвержденный событие

Ramza360

Вы пытаетесь заполнить текстовое поле при нажатии на ячейку в представлении таблицы данных? Как заявил CHill60, это не совсем ясно.

1 Ответов

Рейтинг:
1

Ramza360

Предполагая, что вы имеете в виду заполнение текстового поля тем, что выбрано в представлении таблицы данных, используйте события CellClick или CellEnter в представлении таблицы данных. CellEnter более полезен, так как он будет срабатывать при щелчке по ячейке и при фокусировке ячейки (т. е. с помощью клавиш со стрелками для навигации по сетке).

private void dataGridView1_CellEnter(object sender, DataGridViewCellEventArgs e){
   object data = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value;   
   txtCarga.Text = data.ToString();
}