none
Как объявить экземпляр класса Panel модификаторами public и static? RRS feed

Ответы

  • Решение:

    Проблемный код:

            private void InitializeComponent()
            {
                this.panel1 = new System.Windows.Forms.Panel();
                this.SuspendLayout();
                // 
                // panel1
                // 
                this.panel1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224)))));
                this.panel1.Location = new System.Drawing.Point(43, 64);
                this.panel1.Name = "panel1";
                this.panel1.Size = new System.Drawing.Size(200, 100);
                this.panel1.TabIndex = 0;
                // 
                // Form1
                // 
                this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
                this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
                this.BackColor = System.Drawing.Color.White;
                this.ClientSize = new System.Drawing.Size(284, 262);
                this.Controls.Add(this.panel1);
                this.KeyPreview = true;
                this.Name = "Form1";
                this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
                this.Text = "Form1";
                this.ResumeLayout(false);
    
            }
    
            #endregion
    
            public static System.Windows.Forms.Panel panel1;

    Исправленный и рабочий код:

            private void InitializeComponent()
            {
                panel1 = new System.Windows.Forms.Panel();
                this.SuspendLayout();
                // 
                // panel1
                // 
                panel1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224)))));
                panel1.Location = new System.Drawing.Point(43, 64);
                panel1.Name = "panel1";
                panel1.Size = new System.Drawing.Size(200, 100);
                panel1.TabIndex = 0;
                // 
                // Form1
                // 
                this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
                this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
                this.BackColor = System.Drawing.Color.White;
                this.ClientSize = new System.Drawing.Size(284, 262);
                this.Controls.Add(panel1);
                this.KeyPreview = true;
                this.Name = "Form1";
                this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
                this.Text = "Form1";
                this.ResumeLayout(false);
    
            }
    
            #endregion
    
            public static System.Windows.Forms.Panel panel1;
    • Помечено в качестве ответа Ziya Ceferov 15 сентября 2012 г. 15:20
    15 сентября 2012 г. 15:06

Все ответы

  • А он рабочий :) Не совсем понятно, что вы хотите сделать, но попробуйте что нибудь в этом роде в теле программы:

    panel1 = new System.Windows.Forms.Panel();
    panel1.Show();


    DreamSpark Premium User

    15 сентября 2012 г. 10:05
  • А он рабочий

    А как, если я не создаю его вручную?
    15 сентября 2012 г. 10:16
  • Если используете слово static, то создаете поле класса, не зависимое от экземпляров созданных классов. Сама по себе строчка рабочая, всё зависит от того, что Вы хотите сделать.

    DreamSpark Premium User

    15 сентября 2012 г. 11:42
  • Решение:

    Проблемный код:

            private void InitializeComponent()
            {
                this.panel1 = new System.Windows.Forms.Panel();
                this.SuspendLayout();
                // 
                // panel1
                // 
                this.panel1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224)))));
                this.panel1.Location = new System.Drawing.Point(43, 64);
                this.panel1.Name = "panel1";
                this.panel1.Size = new System.Drawing.Size(200, 100);
                this.panel1.TabIndex = 0;
                // 
                // Form1
                // 
                this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
                this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
                this.BackColor = System.Drawing.Color.White;
                this.ClientSize = new System.Drawing.Size(284, 262);
                this.Controls.Add(this.panel1);
                this.KeyPreview = true;
                this.Name = "Form1";
                this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
                this.Text = "Form1";
                this.ResumeLayout(false);
    
            }
    
            #endregion
    
            public static System.Windows.Forms.Panel panel1;

    Исправленный и рабочий код:

            private void InitializeComponent()
            {
                panel1 = new System.Windows.Forms.Panel();
                this.SuspendLayout();
                // 
                // panel1
                // 
                panel1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224)))));
                panel1.Location = new System.Drawing.Point(43, 64);
                panel1.Name = "panel1";
                panel1.Size = new System.Drawing.Size(200, 100);
                panel1.TabIndex = 0;
                // 
                // Form1
                // 
                this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
                this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
                this.BackColor = System.Drawing.Color.White;
                this.ClientSize = new System.Drawing.Size(284, 262);
                this.Controls.Add(panel1);
                this.KeyPreview = true;
                this.Name = "Form1";
                this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
                this.Text = "Form1";
                this.ResumeLayout(false);
    
            }
    
            #endregion
    
            public static System.Windows.Forms.Panel panel1;
    • Помечено в качестве ответа Ziya Ceferov 15 сентября 2012 г. 15:20
    15 сентября 2012 г. 15:06
  • Этот код размещается в файле *.Designer.cs? Если да, то это не решение. В этом файле автоматически-генерируемый код. При изменении GUI в дизайнере, содержимое файла будет автоматически изменено, и модификатор static будет удалён.

    А зачем вообще понадобилось делать его статиком?

    17 сентября 2012 г. 9:18
  • Вы идете по неверному пути, решая неправильно проблемы и так заведете себя в яму из которой после будет сложно выбраться.

    Если вам нужно изменять это поле из другой формы, то есть нескольков методов решения данной проблемы. Расскажите что вы хотите и мы подскажем как это сделать правильно.


    Для связи [mail]

    17 сентября 2012 г. 14:21