我在我的winforms應用程序中使用DockPanel套件。 DockContent類派生自System.Windows.Forms.Form類,我的兩個窗體dockRounds和dockToolbox繼承自DockContent類。如何訪問繼承的表單上的控件?
這是我第一次做到這一點,這可能是一個愚蠢的問題,但在運行時,如何訪問dockRounds和dockToolbox表單的控件?
這是我如何加載兩種形式,當應用程序第一次運行:
public partial class frmMainNew : Form
clsMWDockPanel mapPanel;
dockToolbox dockT = new dockToolbox();
dockRounds dockR = new dockRounds();
public frmMainNew()
{
InitializeComponent();
dockPanel = new DockPanel();
SuspendLayout();
dockPanel.Parent = panelMain;
dockPanel.Dock = DockStyle.Fill;
dockPanel.DefaultFloatWindowSize = new Size(108, 528);
dockPanel.BringToFront();
dockPanel.BackColor = Color.Transparent;
dockPanel.DocumentStyle = DocumentStyle.DockingSdi;
ResumeLayout();
string error = "Errors:\r\n";
try
{
loadRounds();
loadToolbox();
}
catch (Exception)
{
error = error + "The Toolbox and/or Rounds menu could not be created\r\n";
}
}
public void loadToolbox()
{
dockT.CloseButton = false;
dockT.ShowHint = DockState.Float;
dockT.Text = "Toolbox";
dockT.BackColor = Color.WhiteSmoke;
dockT.Icon = this.Icon;
dockT.Show(dockPanel);
}
public void loadRounds()
{
if (mapPanel == null)
{
CreateMapPanel().Show(dockPanel, DockState.Document);
}
mapMain.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right;
//mapMain.BringToFront();
dockR.CloseButton = false;
dockR.ShowHint = DockState.DockRightAutoHide;
dockR.Text = "Rounds Menu";
dockR.BackColor = Color.WhiteSmoke;
dockR.Icon = this.Icon;
dockR.Show(dockPanel);
}
DockContent CreateMapPanel()
{
mapPanel = new clsMWDockPanel();
mapPanel.ShowHint = DockState.Document;
mapPanel.Controls.Add(mapMain);
return mapPanel;
}
提前感謝
萊迪
感謝比爾,我已經測試過這個,你的第一個建議很好用 - 但是,對這兩種形式有很多控制 - 是否有任何方法可以將這些控件的事件代碼放在單獨的類中,以便不會混淆主要的表單代碼,但仍然可以引用控件?再次感謝 – leddy 2009-11-18 12:24:51
.NET FrameWork 3.5,C#3.0中的注意事項,你有「自動屬性」,它可以爲你節省大量的輸入。 MS的Dan Whalin快速「一次性」:http://weblogs.asp.net/dwahlin/archive/2007/12/04/c-3-0-features-automatic-properties.aspx更多詳情請參閱:http ://msdn.microsoft.com/en-us/library/bb384054.aspx對於您提出的更廣泛的問題,我們需要了解更多關於您的應用程序的信息:例如,是否存在對象連接的模式。我正在使用一個單獨的靜態類,它可以作爲「調度」中心,用於跨表單同步事件/內容。最好, – BillW 2009-11-18 14:55:19