2 Stimmen

Fehlende teilweise modern auf Deklaration

Wie kann ich den Fehler korrigieren, den ich bekomme, wenn ich versuche, mein Programm auszuführen? Ich habe dieses Programm im Internet gefunden und es scheint, dass es mit Visual C# 2005 kompiliert wurde, aber ich benutze Visual C# 2010. Bevor ich es kompiliere, erhalte ich diese beiden Fehler

Fehler 2 Mehrdeutigkeit zwischen 'RecursiveSearchCS.Form1.components' und 'RecursiveSearchCS.Form1.components' C:\Benutzer\jacr\AppData\Lokal\Temporär Projekte\WindowsFormsApplication1\Form1.cs 46 21 WindowsFormsApplication1

Fehler 1 Der Aufruf ist mehrdeutig zwischen den folgenden Methoden oder Eigenschaften: 'RecursiveSearchCS.Form1.InitializeComponent()' und 'RecursiveSearchCS.Form1.InitializeComponent()' C:\Benutzer\jacr\AppData\Lokal\Temporär Projekte\WindowsFormsApplication1\Form1.cs

32 13 WindowsFormsApplication1

Und wenn ich versuche, es mit Fehlern zu kompilieren, erhalte ich dies

Fehler 1 Fehlendes teilweises Modifikator bei der Deklaration des Typs 'RecursiveSearchCS.Form1'; eine weitere teilweise Deklaration dieses Typs existiert C:\Benutzer\jacr\AppData\Lokal\Temporär Projekte\WindowsFormsApplication1t\Form1.cs 14 18 WindowsFormsApplication1t

Was genau soll ich tun? Mein Programm sucht nach Textdateien in einem Verzeichnis, aber anscheinend erhalte ich diesen Fehler ... dies ist der Code auf der form1.cs

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.IO;

namespace RecursiveSearchCS
{
    public class Form1 : System.Windows.Forms.Form
    {
        internal System.Windows.Forms.Button btnSearch;
        internal System.Windows.Forms.TextBox txtFile;
        internal System.Windows.Forms.Label lblFile;
        internal System.Windows.Forms.Label lblDirectory;
        internal System.Windows.Forms.ListBox lstFilesFound;
        internal System.Windows.Forms.ComboBox cboDirectory;
        private System.ComponentModel.Container components = null;

        public Form1()
        {
            InitializeComponent();
        }

        protected override void Dispose(bool disposing)
        {
            if (disposing)
            {
                if (components != null)
                {
                    components.Dispose();
                }
            }
            base.Dispose(disposing);
        }

        #region Windows Form Designer generated code
        private void InitializeComponent()
        {
            this.btnSearch = new System.Windows.Forms.Button();
            this.txtFile = new System.Windows.Forms.TextBox();
            this.lblFile = new System.Windows.Forms.Label();
            this.lblDirectory = new System.Windows.Forms.Label();
            this.lstFilesFound = new System.Windows.Forms.ListBox();
            this.cboDirectory = new System.Windows.Forms.ComboBox();
            this.SuspendLayout();

            this.btnSearch.Location = new System.Drawing.Point(608, 248);
            this.btnSearch.Name = "btnSearch";
            this.btnSearch.TabIndex = 0;
            this.btnSearch.Text = "Suche";
            this.btnSearch.Click += new System.EventHandler(this.btnSearch_Click);

            this.txtFile.Location = new System.Drawing.Point(8, 40);
            this.txtFile.Name = "txtFile";
            this.txtFile.Size = new System.Drawing.Size(120, 20);
            this.txtFile.TabIndex = 4;
            this.txtFile.Text = "*.dll";

            this.lblFile.Location = new System.Drawing.Point(8, 16);
            this.lblFile.Name = "lblFile";
            this.lblFile.Size = new System.Drawing.Size(144, 16);
            this.lblFile.TabIndex = 5;
            this.lblFile.Text = "Nach Dateien suchen, die enthalten:";

            this.lblDirectory.Location = new System.Drawing.Point(8, 96);
            this.lblDirectory.Name = "lblDirectory";
            this.lblDirectory.Size = new System.Drawing.Size(120, 23);
            this.lblDirectory.TabIndex = 3;
            this.lblDirectory.Text = "Durchsuchen in:";
            // 
            // lstFilesFound
            // 
            this.lstFilesFound.Location = new System.Drawing.Point(152, 8);
            this.lstFilesFound.Name = "lstFilesFound";
            this.lstFilesFound.Size = new System.Drawing.Size(528, 225);
            this.lstFilesFound.TabIndex = 1;

            this.cboDirectory.DropDownWidth = 112;
            this.cboDirectory.Location = new System.Drawing.Point(8, 128);
            this.cboDirectory.Name = "cboDirectory";
            this.cboDirectory.Size = new System.Drawing.Size(120, 21);
            this.cboDirectory.TabIndex = 2;
            this.cboDirectory.Text = "ComboBox1";

            this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
            this.ClientSize = new System.Drawing.Size(688, 277);
            this.Controls.AddRange(new System.Windows.Forms.Control[] {

            this.btnSearch,
            this.txtFile,
            this.lblFile,
            this.lblDirectory,
            this.lstFilesFound,
            this.cboDirectory});

            this.Name = "Form1";
            this.Text = "Form1";
            this.Load += new System.EventHandler(this.Form1_Load);
            this.ResumeLayout(false);

        }
        #endregion

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

        private void btnSearch_Click(object sender, System.EventArgs e)
        {
            lstFilesFound.Items.Clear();
            txtFile.Enabled = false;
            cboDirectory.Enabled = false;
            btnSearch.Text = "Suche...";
            this.Cursor = Cursors.WaitCursor;
            Application.DoEvents();
            DirSearch(cboDirectory.Text);
            btnSearch.Text = "Suche";
            this.Cursor = Cursors.Default;
            txtFile.Enabled = true;
            cboDirectory.Enabled = true;
        }

        private void Form1_Load(object sender, System.EventArgs e)
        {
            cboDirectory.Items.Clear();
            foreach (string s in Directory.GetLogicalDrives())
            {
                cboDirectory.Items.Add(s);
            }
            cboDirectory.Text = "C:\\";
        }

        void DirSearch(string sDir)
        {
            try
            {
                foreach (string d in Directory.GetDirectories(sDir))
                {
                    foreach (string f in Directory.GetFiles(d, txtFile.Text))
                    {
                        lstFilesFound.Items.Add(f);
                    }
                    DirSearch(d);
                }
            }
            catch (System.Exception excpt)
            {
                Console.WriteLine(excpt.Message);
            }
        }
    }
}

2voto

Jon Skeet Punkte 1325502

Der von Ihnen gegebene Code kompiliert tatsächlich einwandfrei.

Beim Betrachten der Fehler scheint es jedoch, dass Sie zwei Kopien haben:

C:\Users\jacr\AppData\Local\Temporary Projects\WindowsFormsApplication1\Form1.cs

C:\Users\jacr\AppData\Local\Temporary Projects\WindowsFormsApplication1t\Form1.cs

Beachten Sie das "t" am Ende des zweiten Verzeichnisnamens.

Entfernen Sie eine dieser Kopien, dann sollte es funktionieren. (Sie sollten in Visual Studio in der Lage sein, eine der Form1.cs-Dateien zu löschen...)

1voto

MarcinJuraszek Punkte 120867

Erweitern Sie Ihre class-Deklaration mit dem partial-Schlüsselwort:

public partial class Form1 : System.Windows.Forms.Form

1voto

Soner Gönül Punkte 93790

Versuchen Sie es mit dem partial Stichwort wie;

public partial class Form1 : System.Windows.Forms.Form

EDIT: Es sieht so aus, als ob Sie zwei Kopien dieses Projekts haben;

C:\Benutzer\jacr\AppData\Local\Temporäre Projekte\WindowsFormsApplication1\Form1.cs

und

C:\Benutzer\jacr\AppData\Local\Temporäre Projekte\WindowsFormsApplication1t\Form1.cs

Entfernen Sie einfach eines dieser Projekte, weil Sie sie in derselben Frage danach fragen. Wahrscheinlich ist das der Grund.

1voto

Karl-Johan Sjögren Punkte 15255

Nun wie die meisten bereits erwähnt haben, benötigen Sie das partial-Schlüsselwort in Ihrer Klassendeklaration.

public partial class Form1 : System.Windows.Forms.Form

Wenn Sie mit Windows Forms arbeiten, teilt Visual Studio Ihr Formular in mehrere Dateien auf (MyForm.cs für Ihren Code und MyForm.Designer.cs für den generierten Code für Ihre UI-Elemente und manchmal eine Ressourcendatei dazu). Da die Klasse über mehrere Dateien aufgeteilt ist, wird das partial-Schlüsselwort benötigt, um dem Compiler mitzuteilen, dass er weiter nach mehr Dateien suchen soll, bevor er diese Klasse abschließt.

Weitere Informationen zum partial-Schlüsselwort finden Sie hier: http://msdn.microsoft.com/en-us/library/wa80x488%28v=vs.80%29.aspx

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X