-1

Label textInparent Formを変更しようとしてChild formいますが、このエラーが表示されますObject reference not set to an instance of an object.。どこが間違っていますか? これが私が使用しているコードです

private void btnMedicalClgList_Click(object sender, EventArgs e)
        {
            this.ParentForm.Controls["lblMenuItem"].Text = "Medical College List";//getting error here
            ShowMedicalClgList medifrm = new ShowMedicalClgList();
            medifrm.MdiParent = this.ParentForm;
            this.Hide();
            medifrm.Show();           
        }
4

1 に答える 1

1

コメントで述べたように、コントロールの名前を Controls コレクションのインデクサーとして使用して取得することはできませんが、コントロール コレクションを反復処理して目的のコントロールを見つけ、それを使用して必要なことを行うことができます。これを試してください。

Label lbl = null;
foreach (var control in this.ParentForm.Controls)
{
    if (((Control)control).Name == "lblMenuItem")
    {
        lbl = (Label)control;
        break;
    }
}
if (lbl != null)
    lbl.Text = "Medical College List";

または、より少ないコードを記述したい場合:

Control[] foundControls = this.Controls.Find("lblMenuItem", true);
if (foundControls.Any())
    foundControls.First().Text = "Medical College List";
于 2013-09-05T15:24:20.763 に答える