как получить контроль внутри сплитконтейнера? - PullRequest
0 голосов
/ 12 октября 2011

Мой код

((DataGridView)(Application.OpenForms["frmMasterInterface"]
.Controls["splitContainer1"]
.Controls["splitContainer1.Panel1"]
.Controls["pnlLeft"]
.Controls["grbfittingTypes"]
.Controls["dgvitems"])).Rows[RowIndex].Cells["sizeRange"].Value

Я хочу получить значение строки представления данных из другой формы. Пожалуйста, помогите.

Спасибо и всего наилучшего,

-Nitin

Ответы [ 2 ]

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

Я надеюсь, что вы хотите получить данные, щелкнув содержимое ячейки. С другой стороны. Это работает для меня, как вы определили, надеюсь, это поможет вам.

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);
}

Надеюсь, это поможет.

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

Вероятно, есть сотни способов сделать это, я только что попробовал следующее: сначала получить ссылку на разделенный контейнер, а затем получить прямой доступ к Panel1, и это работает:

SplitContainer sc = (SplitContainer)Application.OpenForms[0].Controls["splitContainer1"];
DataGridView dg = (DataGridView)sc.Panel1.Controls["dataGridView1"];

Тем не менее, если бы я был вами, я бы вместо этого посмотрел на создание свойства на вашем frmMasterInterface для прямого доступа к DataGridView, а затем передав ссылку на frmMasterInterface во вторую форму.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...