Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法访问dockpanel套件dock c中的控制#_C#_Image_Namespaces_Dockpanel Suite - Fatal编程技术网

C# 无法访问dockpanel套件dock c中的控制#

C# 无法访问dockpanel套件dock c中的控制#,c#,image,namespaces,dockpanel-suite,C#,Image,Namespaces,Dockpanel Suite,我创建了一个简单的应用程序框架,允许用户标记可缩放picturebx(Cyotek imagebox,)中显示的图像。为了让一切看起来像2000+,我在混合中添加了dockpanelsuite(),因为我希望有更多的面板用于更快的导航,还有一个面板用于一些工具,如image fx等。我已经按照建议设置了面板,中间的dock是不可移动的,并保持imagebox控件。但是,我无法访问和更改imagebox属性。我已经加载了正确的名称空间,我已经将imagebox设置为public,但仍然没有成功。

我创建了一个简单的应用程序框架,允许用户标记可缩放picturebx(Cyotek imagebox,)中显示的图像。为了让一切看起来像2000+,我在混合中添加了dockpanelsuite(),因为我希望有更多的面板用于更快的导航,还有一个面板用于一些工具,如image fx等。我已经按照建议设置了面板,中间的dock是不可移动的,并保持imagebox控件。但是,我无法访问和更改imagebox属性。我已经加载了正确的名称空间,我已经将imagebox设置为public,但仍然没有成功。 这就是主docj loooks的建造方式:

    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是保存图像的imagebox。在程序的主要部分,我按照如下方式构建dock

     public partial class main_Form : Form
{
    public main_Form()
    {
        InitializeComponent();
        Image_Area main_Canvas = new Image_Area();
主画布显示(dockPanel、DockState.Document); 会话_enable()

但是,我只能访问main_表单中的main_Canvas.Canvas_选项卡,甚至无法从共享相同名称空间的方法(如上面的session_enable())访问它。 我的代码怎么了?难道我只是对一个明显的愚蠢行为视而不见吗?
如果您对如何避免此类陷阱或我使用dockpanelsuite的基本方法有任何建议,请不要犹豫!我知道我可以使用多个嵌套拆分器,但我希望用户能够按照自己的意愿移动面板

我想我不明白你的问题,但是要创建对接面板,标准的方法是创建从DockContent继承的控件,并将它们添加到主窗体中的dockPanel控件(将
IsmdicContainer
设置为
true
),使用
yourDockContent.Show(dockPanel)。如果你在这一点上-你的问题到底是什么?我刚刚在主表单的开始,在构造函数之前公开了码头。现在可以访问它们了!无论如何谢谢你!