#c# #winforms #datagridview
#c# #winforms #datagridview
Вопрос:
Мой код
((DataGridView)(Application.OpenForms["frmMasterInterface"]
.Controls["splitContainer1"]
.Controls["splitContainer1.Panel1"]
.Controls["pnlLeft"]
.Controls["grbfittingTypes"]
.Controls["dgvitems"])).Rows[RowIndex].Cells["sizeRange"].Value
Я хочу получить значение строки datagridview из другой формы.
Пожалуйста, помогите.
Спасибо и с уважением,
-Нитин
Комментарии:
1. На самом деле datagridview находится внутри панели splitcontainer1
Ответ №1:
Вероятно, есть сотни способов сделать это, я только что попробовал следующее: сначала получить ссылку на разделенный контейнер, а затем Panel1
получить прямой доступ, и это работает:
SplitContainer sc = (SplitContainer)Application.OpenForms[0].Controls["splitContainer1"];
DataGridView dg = (DataGridView)sc.Panel1.Controls["dataGridView1"];
Тем не менее, если бы я был на вашем месте, я бы посмотрел вместо этого на создание свойства frmMasterInterface
DataGridView
для прямого доступа к нему, а затем передал ссылку frmMasterInterface
на вторую форму.
Ответ №2:
я надеюсь, что вы хотите получить данные, щелкнув содержимое ячейки.из другого.Это работает для меня так, как определено u, надеюсь, это поможет вам.
DataGridView dggg; //Globally Declared
private void dd()
{
var form = (frmMasterInterface)Application.OpenForms["frmMasterInterface"];//Form Name
if (form == null) return;
foreach (DataGridView dgv in form.Controls.OfType<DataGridView>())
if (dgv.Name == "dataGridView1") //name of data grid view
{
dggg = dgv;
dgv.CellMouseClick = Datagirdmouseclick;
}
}
private void Datagirdmouseclick(object sender, DataGridViewCellMouseEventArgs e)
{
Trace.WriteLine(dggg.Rows[e.RowIndex].Cells["sizeRange"].Value);
}
Надеюсь, это поможет.