我设置了一个主屏幕,它的主体由一个巨型面板组成。然后我有一系列用户控件被删除或加载到主屏幕。我不知道该怎么做才能让用户控件影响主屏幕。
用户控件的代码示例:
PartsSystem parts = new PartsSystem(); //a user control
MainMenu.pnlMain.Controls.Clear();
MainMenu.pnlMain.Controls.Add(parts);
此代码在加载主屏幕时有效,但我似乎无法从其他用户控件访问pnlMain。有可能解决这个问题吗?我有一个函数设置为在MainMenu表单中获取用户控件,但我似乎无法从用户控件中调用它。我试图这样做,以便当他们点击一个按钮时,他们会转到下一个屏幕(用户控件)。
我在Windows 7上使用C#和Visual Studio 2010以及所有默认设置。
以下是一些其他代码示例:
public partial class Main_Menu : Form
{
public Main_Menu()
{
InitializeComponent();
MainMenuPanel main = new MainMenuPanel();
panelChange(main);
}
public void panelChange(UserControl newPanel)
{
pnlMain.Controls.Clear();
pnlMain.Controls.Add(newPanel);
}
}
那是Main_Menu。此代码适用于启动。现在,提出我的PartsSystem是另一个问题。using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Program_v1._0._0._0._4
{
public partial class MainMenuPanel : UserControl
{
public MainMenuPanel()
{
InitializeComponent();
Main_Menu parentForm = (this.Parent as Main_Menu);
}
public void btnPartsInventory_Click(object sender, EventArgs e)
{
Main_Menu myParent = (this.Parent as Main_Menu);
PartsSystem parts = new PartsSystem();
myParent.pnlMain.Controls.Clear(); //Object reference not set to an instance of an object.
//This is the error I get at this point. It won't let me use the function.
myParent.pnlMain.Controls.Add(parts);
}
}
}
感谢您的帮助!
答案 0 :(得分:0)
尝试使用UserControl.Parent
访问父控件。