2016-05-27 7 views
0

Я только начинаю использовать объект ToolStrip на своих окнах Form.Ошибки сборки проекта C# после импорта изображения кнопки на кнопке инструментальной панели

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

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

Add button to toolstrip

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

Import button

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

Extra files created

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

Эти ошибки:

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 отдельно от формы. Тот, который на самом деле не похож на файл дизайнера. То, что я не видел на скриншоте, - это форма, с которой эти Дизайнеры должны быть связаны.

Он должен выглядеть следующим образом:

enter image description here

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

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

P.S. Я также задаюсь вопросом, запутаетесь ли вы в конструкциях WPF с помощью WinForms. Они сильно отличаются друг от друга.Ваше использование слова «Вид» предложило мне это. Возможно, я ошибаюсь.

+0

У меня только одна действительная форма. Но то, что вы сказали, заставило меня задуматься о том, откуда взялась часть моего проекта. Таким образом, я удалил избыточные ** файлы resx/designer **, а затем в исходном cs удалил вызов InitializeComponent (так как формы все равно) и voila! :) –

+0

Я использую WinForms. Я никогда не использовал WPF. Я просто использую термин «Вид» из-за моего фона MFC. Я переименовал полученный объект UserControl в качестве представления. Это все. WPF - это неизвестная территория. :) –