我创建了一个简单的应用程序框架,允许用户标记在可缩放的picturebx(Cyotek imagebox,http://cyotek.com/blog/imagebox-update-version-1-1-0-0)中显示的图像。为了让所有东西看起来都超过2000,我已经将dockpanelsuite(https://github.com/dockpanelsuite/dockpanelsuite)添加到混音中,因为我希望有更多的面板用于更快的导航,而另一个用于某些工具,如图像fx等。我已经设置了按照建议使用面板,中间底座不可移动并保持图像框控件。但是,我无法访问和更改图像框属性。我已经加载了正确的命名空间,我已将图像框设置为公共但仍然没有运气。 这就是主要docj的构造如下:
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Image_Area));
this.canvas_tab = new Cyotek.Windows.Forms.ImageBox();
this.SuspendLayout();
//
// canvas_tab
//
this.canvas_tab.AllowZoom = false;
this.canvas_tab.Cursor = System.Windows.Forms.Cursors.Cross;
this.canvas_tab.Dock = System.Windows.Forms.DockStyle.Fill;
this.canvas_tab.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.Bicubic;
this.canvas_tab.Location = new System.Drawing.Point(0, 0);
this.canvas_tab.Name = "canvas_tab";
this.canvas_tab.ShortcutsEnabled = false;
this.canvas_tab.Size = new System.Drawing.Size(284, 262);
this.canvas_tab.TabIndex = 2;
this.canvas_tab.TextDisplayMode = Cyotek.Windows.Forms.ImageBoxGridDisplayMode.None;
//
// Image_Area
//
this.AccessibleRole = System.Windows.Forms.AccessibleRole.Window;
this.AllowEndUserDocking = false;
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(284, 262);
this.CloseButton = false;
this.CloseButtonVisible = false;
this.ControlBox = false;
this.Controls.Add(this.canvas_tab);
this.Cursor = System.Windows.Forms.Cursors.Cross;
this.DockAreas = WeifenLuo.WinFormsUI.Docking.DockAreas.Document;
this.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.HideOnClose = true;
this.Name = "Image_Area";
this.Text = "\"\"";
this.ResumeLayout(false);
}
#endregion
public Cyotek.Windows.Forms.ImageBox canvas_tab;
}
其中canvas_tab是保存图像的图像框。在程序的主要部分,我构建了如下的码头
public partial class main_Form : Form
{
public main_Form()
{
InitializeComponent();
Image_Area main_Canvas = new Image_Area();
main_Canvas.Show(dockPanel,DockState.Document); session_enable();
但是,我只能访问main_Form中的main_Canvas.canvas_tab,我甚至无法从共享相同名称空间的方法访问它,例如上面的session_enable()。 我的代码出了什么问题?我只是对我明显的愚蠢视而不见? 如果您有任何建议如何避免这些陷阱或任何替代我使用dockpanelsuite的基本方法,请不要犹豫!我知道我可以使用多个嵌套分割器,但我希望用户能够按照自己的意愿移动面板!