web-dev-qa-db-fra.com

Il manque un modificateur partiel dans la déclaration ... une autre déclaration partielle de ce type existe ". Je suis débutant et je ne fais que suivre le livre

Je suis débutant et je fais un exercice à la suite d'un livre. Ci-dessous mon code et je l’ai eu 

"Missing partial modifier on declaration of type 'Windowsform.Form1'; another partial declaration of this type exists".

Que devrais-je faire? Mon code est le suivant:

using System;
using System.Windows.Forms;

namespace Windowsform
{
    public class Form1 : Form
    {
       private TextBox txtEnter;
       private Label lblDisplay;
       private Button btnOk;

       public Form1()

       {
           this.txtEnter = new TextBox();
           this.lblDisplay = new Label();
           this.btnOk = new Button();
           this.Text = "My Hellowin app!";


           //txtEnter
           this.txtEnter.Location = new System.Drawing.Point(16, 32);
           this.txtEnter.Size = new System.Drawing.Size(264, 20);

           //lblDisplay
           this.lblDisplay.Location = new System.Drawing.Point(16, 72);
           this.lblDisplay.Size = new System.Drawing.Size(264, 128);

           //btnOK
           this.btnOk.Location = new System.Drawing.Point(88, 224);
           this.btnOk.Text = "OK";
           this.btnOk.Click +=
               new System.EventHandler(this.btnOK_Click); 

           //MyForm
           this.Controls.AddRange(new Control[] {
                            this.txtEnter, this.lblDisplay, this.btnOk});

       }

       static void Main()
       {
           Application.Run(new Form1());
       }

       private void btnOK_Click(object sender, System.EventArgs e)
       {
           lblDisplay.Text = txtEnter.Text + "\n" + lblDisplay.Text;
       }
    }
}
13
user1742237

Dans un autre endroit, vous avez déclaré une classe portant le même nom (Form1), déclarée avec le modificateur partial.

Si vous divisez votre classe en deux fichiers différents (par exemple, ce fichier pour la présentation de l'interface utilisateur et un autre fichier pour la logique), ajoutez simplement le modificateur partial à la déclaration:

public partial class Form1
{
}
25
Adriano Repetti

Lorsque vous créez un nouveau formulaire, celui-ci est créé à deux endroits distincts. Un endroit où la classe est déclarée est l'endroit où toute la plomberie est mise en œuvre et le fichier que vous avez collé ici, pour écrire toutes les fonctionnalités. Pour rendre cela possible, c # a une fonction de classe partielle. Si, à un endroit quelconque de l’Assemblée, une classe est définie avec un modificateur partiel, il est alors possible de définir plusieurs déclarations de la classe, tant qu’elle possède ce modificateur.

plus à ce sujet dans msdn

5
Igarioshka

Juste au cas où quelqu'un trébucherait comme moi ... Je suis passé de Visual Studio 2013 pour Web à Visual Studio 2015 RC pour jouer avec mes solutions MVC. 

Si vous essayez d'ouvrir une solution MVC4 en 2015, RC effectue une partie de l'automagique, ce qui peut provoquer cette erreur lors de la prochaine ouverture de la même solution en 2013 pour le Web.

J'ai fini par revenir à une précédente révision SVN et à utiliser uniquement 2013 pour le Web et mon code a été construit correctement, comme il l'avait été pendant des années. Je sais que ce n’est pas la solution appropriée, mais c’est ce qui a provoqué sa «sortie» de nulle part dans mon cas.

1
Mike Wallace

Dans mon cas, cette erreur s'est produite lorsque j'utilisais une application de formulaire Web dans asp.net et que c'était parce que dans mon balisage global.asax, j'avais remplacé l'attribut CodeBehind par CodeFile. Le changer en arrière a résolu le problème.

0
Jamshaid Kamran

Je peux me tromper complètement à ce sujet, mais je recevais la même erreur (et plus) avec MVC3 et EF4. Après avoir frappé ma tête sur le bureau pendant environ un jour, j'ai finalement décidé de passer à MVC4 et de subir la courbe d'apprentissage si MVC3 n'allait pas coopérer. La chose amusante est que toutes mes erreurs sont parties.

Avant de procéder à la mise à niveau, j'ai dû effectuer 100 recherches en essayant de trouver mes déclarations en double.

On dirait que MVC4 et EF4 jouent plus bien ensemble.

0
SumNone

TL; DR: causée par des vestiges de classes renommées par VS2013 mais que VS2013 n'a pas correctement renommé partout, laissant des exemples de l'ancien nom traîner dans des endroits non divulgués.

DÉTAIL: J'ai eu exactement la même erreur dans VS2013; dans mon cas, j'ai initialement ajouté une nouvelle classe "Employee", mais je me suis rendu compte qu'il aurait dû s'agir de AddEmployee. les bons endroits.
Très longtemps après, j’ai essayé d’ajouter une classe d’employés, puis j’ai eu l’erreur. Après avoir visité le site et ne pas avoir trouvé de solution, j'ai cherché 'solution complète' pour d'autres instances d'employé, ce qui a donné lieu à quelques échecs depuis que j'avais précédemment renommé Employee en AddEmployee:

AddEmployee.aspx.cs:    public partial class Employee : System.Web.UI.Page
AddEmployee.aspx.designer.cs:    public partial class Employee {

Mis à jour ces deux à AddEmployee et l'erreur est parti et compilé et a couru comme il se doit.

0
sdjuan