Итак, у меня есть 2 формы. У основного есть TextBox
, и если я нажму F1
, он откроет новую форму с DataGridView
в зависимости от вставленных значений на TextBox
. После двойного щелчка в этой строке из второй формы он снова войдет в основную форму и заполнит TextBox
выбранной строкой.Проверка события с TextBox в C#
Тогда в основной форме у меня есть событие Validating на TextBox
, и он сможет в зависимости от этого значения показать его в Основной форме DataGridView
.
К сожалению, это не сработало, и я думаю, что проблема исходит от CauseValidation
от других компонентов. Я отключил его, используя, например: dataGridView1.CauseValidation = false;
, но все тот же.
Это код на TextBox
события:
private void txtCargs_Validating(object sender, CancelEventArgs e)
{
e.Cancel = false;
try
{
SqlConnection con = new SqlConnection(cs.DBConnP);
con.Open();
string querySelect = @"SELECT RTRIM(CL.Cargs) AS 'Cargs', RTRIM(S.Abvs) AS 'Abss', RTRIM(CL.Linha) AS 'Linha', RTRIM(CL.Qtd) AS 'Quantity'
FROM CargaCab CC (NOLOCK)
INNER JOIN CargsLin CL (NOLOCK) ON CC.Cargs = CL.Cargs
INNER JOIN Stock S (NOLOCK) ON CL.Code = S.Code
INNER JOIN Marks M (NOLOCK) ON S.Marks = M.Marks
WHERE CC.Date >= GETDATE() - 120 AND CL.State NOT IN ('F', 'A') AND S.TypeEmb = 'P'
AND CC.TypeD = 'OCS' AND CL.Cargs = '" + txtCargs.Text.Trim() + "' ORDER BY CL.Carga, S.Marks DESC, S.Abvs";
cmd = new SqlCommand(querySelect);
cmd.Connection = con;
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds, "CargaCab");
dataGridView1.DataSource = ds.Tables["CargaCabee"].DefaultView;
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("Error\nDetalhes: " + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
Что я должен делать?
В какой момент не в состоянии этот код? –
Код не работает в точке останова – RekcsGaming
Почему вы пытаетесь сделать это на мероприятии «Проверка»? Поскольку я знаю, что проверка будет срабатывать, когда вы пытаетесь не сосредоточиться на определенном контроле. Не можете ли вы использовать событие «TextChanged»? –