Ошибки сборки проекта C# после импорта изображения кнопки на кнопке панели инструментов

Я только начинаю использовать ToolStrip объект на моих окнах Form,

Я следовал хорошему руководству, в котором объяснялось, как добавить панель инструментов, затем добавить кнопку, а затем назначить изображение кнопке.

Итак, я добавил панель инструментов, а затем добавил кнопку:

Добавить кнопку в панель инструментов

Как вы можете видеть, на снимке экрана выше я также попытался импортировать изображение. Я сделал это, щелкнув правой кнопкой мыши и выбрав Set Image:

Кнопка импорта

Когда я нажал OK, эти дополнительные файлы (MyGenioViewer1.Designer.cs) были автоматически сгенерированы:

Созданы дополнительные файлы

Но сейчас проект не скомпилируется. Если я восстановлю предыдущую резервную копию и сделаю все, кроме импорта кнопки, она скомпилируется.

Это ошибки:

Severity    Code    Description Project File    Line    Suppression State
Error   CS0111  Type 'MyGenioView' already defines a member called '.ctor' with the same parameter types    GENIO Viewer    D:\My Programs\GENIO Viewer\GENIO Viewer\MyGenioView.cs 65  Active
Error   CS0262  Partial declarations of 'MyGenioView' have conflicting accessibility modifiers  GENIO Viewer    D:\My Programs\GENIO Viewer\GENIO Viewer\MyGenioView.Designer.cs    25  Active
Error   CS0260  Missing partial modifier on declaration of type 'MyGenioView'; another partial declaration of this type exists  GENIO Viewer    D:\My Programs\GENIO Viewer\GENIO Viewer\MyGenioView1.Designer.cs   25  Active
Error   CS0111  Type 'MyGenioView' already defines a member called '.ctor' with the same parameter types    GENIO Viewer    D:\My Programs\GENIO Viewer\GENIO Viewer\MyGenioView1.Designer.cs   32  Active
Error   CS0121  The call is ambiguous between the following methods or properties: 'MyGenioView.MyGenioView()' and 'MyGenioView.MyGenioView()'  GENIO Viewer    D:\My Programs\GENIO Viewer\GENIO Viewer\GENIO_Viewer_Form.cs   53  Active

Очевидно, что добавление этих дополнительных файлов вызвало у меня проблему. Я не знаю, почему они были добавлены. Я не знаю, как решить проблему. И я не знаю, как это предотвратить.

Спасибо за любые разъяснения о правильном решении этой проблемы.

Оригинальный MyGenioView.Designer.cs содержит:

namespace GENIO_Viewer
{
  partial class MyGenioView
  {
    /// <summary> 
    /// Required designer variable.
    /// </summary>
    private System.ComponentModel.IContainer components = null;

    /// <summary> 
    /// Clean up any resources being used.
    /// </summary>
    /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
    protected override void Dispose(bool disposing)
    {
      if (disposing && (components != null))
      {
        components.Dispose();
      }
      base.Dispose(disposing);
    }

    #region Component Designer generated code

    /// <summary> 
    /// Required method for Designer support - do not modify 
    /// the contents of this method with the code editor.
    /// </summary>
    private void InitializeComponent()
    {
      this.SuspendLayout();
      // 
      // MyGenioView
      // 
      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
      this.Name = "MyGenioView";
      this.ResumeLayout(false);

    }

    #endregion
  }
}

Новый MyGenioView1.Designer.cs вызывает проблемы:

//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//     Runtime Version:4.0.30319.42000
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

namespace GENIO_Viewer {
    using System;


    /// <summary>
    ///   A strongly-typed resource class, for looking up localized strings, etc.
    /// </summary>
    // This class was auto-generated by the StronglyTypedResourceBuilder
    // class via a tool like ResGen or Visual Studio.
    // To add or remove a member, edit your .ResX file then rerun ResGen
    // with the /str option, or rebuild your VS project.
    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
    internal class MyGenioView {

        private static global::System.Resources.ResourceManager resourceMan;

        private static global::System.Globalization.CultureInfo resourceCulture;

        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
        internal MyGenioView() {
        }

        /// <summary>
        ///   Returns the cached ResourceManager instance used by this class.
        /// </summary>
        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
        internal static global::System.Resources.ResourceManager ResourceManager {
            get {
                if (object.ReferenceEquals(resourceMan, null)) {
                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("GENIO_Viewer.MyGenioView", typeof(MyGenioView).Assembly);
                    resourceMan = temp;
                }
                return resourceMan;
            }
        }

        /// <summary>
        ///   Overrides the current thread's CurrentUICulture property for all
        ///   resource lookups using this strongly typed resource class.
        /// </summary>
        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
        internal static global::System.Globalization.CultureInfo Culture {
            get {
                return resourceCulture;
            }
            set {
                resourceCulture = value;
            }
        }
    }
}

1 ответ

Решение

У тебя тут настоящий беспорядок. Каким-то образом вы получили файл Designer, отдельный от формы. Тот, который, на самом деле, совсем не похож на дизайнерский файл. На скриншоте я не увидел форму, с которой должны связываться эти дизайнеры.

Это должно выглядеть так:

Вы не показали код этого класса: MyGenioView.cs, но я предполагаю, что это уже определяет хотя бы часть того, что находится в MyGenioView1.Designer.cs,

Суть в том, что у вас слишком много конфликтующих (частичных) классов в слишком многих местах. Мне кажется, у вас должен быть один класс (кодовая страница) для MyGenioViewи еще один для формы. Все остальное противоречиво.

PS Мне также интересно, если вы путаете конструкции WPF с WinForms. Они очень разные. Ваше использование слова "Вид" подсказало мне это. Я могу ошибаться

Другие вопросы по тегам