Ниже приведены исходные коды всего проекта.
Файл AssemblyInfo.cs
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// Управление общими сведениями о сборке осуществляется с помощью набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения,
// связанные со сборкой.
[assembly: AssemblyTitle("Наш новый плагин")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("NewPlugin")]
[assembly: AssemblyCopyright("Copyright © 2012")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Параметр ComVisible со значением FALSE делает типы в сборке невидимыми
// для COM-компонентов. Если требуется обратиться к типу в этой сборке через
// COM, задайте атрибуту ComVisible значение TRUE для этого типа.
[assembly: ComVisible(false)]
// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM
[assembly: Guid("2247ac22-69f8-46f4-99af-650eea2187b3")]
// Сведения о версии сборки состоят из следующих четырех значений:
// Основной номер версии
// Дополнительный номер версии
// Номер построения
// Редакция
// Можно задать все значения или принять номер построения и номер редакции по умолчанию,
// используя «*», как показано ниже:
// [assembly: AssemblyVersion(«1.0.*»)]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
Файл MainClass.cs
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using Interfaces;
using System.Xml.Linq;
using System.Reflection;
namespace NewPlugin
{
public class MainClass : Interfaces.IMainPlugin
{
protected internal static IMainApp App;
protected internal static IWorkClass Work;
#region Члены IMainPlugin
string Interfaces.IMainPlugin.Name
{
get { return AssemblyClass.GetName(Assembly.GetExecutingAssembly()); }
}
string Interfaces.IMainPlugin.GUID
{
get { return AssemblyClass.GetGuid(Assembly.GetExecutingAssembly()); }
}
public void StartPlugin(XElement XSettings, IMainApp app, IWorkClass work)
{
App = app;
Work = work;
// Код Плагина
}
private Interfaces.Forms.IControlSettings _controlSettings;
public Interfaces.Forms.IControlSettings SettingsForm
{
get
{
if (_controlSettings == null)
_controlSettings = new UCSettings();
return _controlSettings;
}
}
#endregion
}
}
Файл UCSettings.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Xml.Linq;
namespace NewPlugin
{
public partial class UCSettings : UserControl, Interfaces.Forms.IControlSettings
{
private XElement _data;
public UCSettings()
{
InitializeComponent();
}
private string keyProc;
public bool LoadSettings(XElement data)
{
_data = data;
var xElement = _data.Element("number");
if (xElement != null)
txtNumber.Text = xElement.Value;
keyProc = MainClass.Work.OpenForm.ProcOpen();
return true;
}
public bool SaveSettings()
{
MainClass.Work.OpenForm.ProcClose(keyProc);
int value;
if (int.TryParse(txtNumber.Text, out value))
{
// если преобразование прошло успешно
XElement number = _data.Element("number");
if (number == null)
{
number = new XElement("number");
_data.Add(number);
}
number.Value = txtNumber.Text;
return true;
}
else
{
MessageBox.Show("Ввведите число.", "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error);
return false;
}
}
}
}
Файл UCSettings.Designer.cs
namespace NewPlugin
{
partial class UCSettings
{
/// <summary>
/// Требуется переменная конструктора.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Освободить все используемые ресурсы.
/// </summary>
/// истинно, если управляемый ресурс должен быть удален; иначе ложно.
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Код, автоматически созданный конструктором компонентов
/// <summary>
/// Обязательный метод для поддержки конструктора - не изменяйте
/// содержимое данного метода при помощи редактора кода.
/// </summary>
private void InitializeComponent()
{
this.txtNumber = new System.Windows.Forms.TextBox();
this.label1 = new System.Windows.Forms.Label();
this.SuspendLayout();
// txtNumber
this.txtNumber.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.txtNumber.Location = new System.Drawing.Point(22, 42);
this.txtNumber.Name = «txtNumber»;
this.txtNumber.Size = new System.Drawing.Size(330, 20);
this.txtNumber.TabIndex = 0;
// label1
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(19, 13);
this.label1.Name = «label1»;
this.label1.Size = new System.Drawing.Size(257, 26);
this.label1.TabIndex = 1;
this.label1.Text = «Введите число, \r\nесли введено не число плагин не даст сохранить»;
// UCSettings
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.label1);
this.Controls.Add(this.txtNumber);
this.Name = «UCSettings»;
this.Size = new System.Drawing.Size(369, 285);
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.TextBox txtNumber;
private System.Windows.Forms.Label label1;
}
}
Свежие комментарии