Изменение интерфейса

This commit is contained in:
Professional 2025-05-01 22:46:44 +07:00
parent 438a7c85cc
commit f68901e381
10 changed files with 625 additions and 355 deletions

View File

@ -1,18 +1,18 @@
<?xml version="1.0" encoding="utf-8" ?>
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="SKLADm.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="SKLADm.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false"/>
</sectionGroup>
</configSections>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2" />
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8"/>
</startup>
<userSettings>
<SKLADm.Properties.Settings>
<setting name="SavedStoresJson" serializeAs="String">
<value />
<value/>
</setting>
</SKLADm.Properties.Settings>
</userSettings>
</configuration>
</configuration>

466
Form1.Designer.cs generated
View File

@ -1,14 +1,4 @@
//------------------------------------------------------------------------------
// <auto-generated>
// Этот код создан программой.
// Исполняемая версия:4.0.30319.42000
//
// Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае
// повторной генерации кода.
// </auto-generated>
//------------------------------------------------------------------------------
namespace OzonInternalLabelPrinter // Убедитесь, что это ваше пространство имен
namespace OzonInternalLabelPrinter // Убедитесь, что это ваше пространство имен
{
partial class Form1
{
@ -26,9 +16,9 @@ namespace OzonInternalLabelPrinter // Убедитесь, что это ваше
if (disposing && (components != null))
{
components.Dispose();
// Освобождаем ресурсы, созданные в коде Form1.cs
_httpClient?.Dispose();
_printDocForSetup?.Dispose(); // Добавлено освобождение PrintDocument
// Добавьте сюда Dispose для ваших неуправляемых ресурсов, если они есть
// _httpClient?.Dispose(); // Пример
// _printDocForSetup?.Dispose(); // Пример
}
base.Dispose(disposing);
}
@ -41,183 +31,345 @@ namespace OzonInternalLabelPrinter // Убедитесь, что это ваше
/// </summary>
private void InitializeComponent()
{
this.label3 = new System.Windows.Forms.Label();
this.txtOfferId = new System.Windows.Forms.TextBox();
this.btnGetData = new System.Windows.Forms.Button();
this.lblProductName = new System.Windows.Forms.Label();
this.lblProductSku = new System.Windows.Forms.Label();
this.lblProductBarcode = new System.Windows.Forms.Label();
this.btnPrintLabel = new System.Windows.Forms.Button();
this.lblStatus = new System.Windows.Forms.Label();
this.cmbStores = new System.Windows.Forms.ComboBox();
this.btnManageStores = new System.Windows.Forms.Button();
this.labelStore = new System.Windows.Forms.Label();
this.btnPageSetup = new System.Windows.Forms.Button(); // Объявление кнопки Настройки
this.pageSetupDialog1 = new System.Windows.Forms.PageSetupDialog(); // Объявление диалога Настройки
this.lblStatus = new MaterialSkin.Controls.MaterialLabel();
this.cmbStores = new MaterialSkin.Controls.MaterialComboBox();
this.btnManageStores = new MaterialSkin.Controls.MaterialButton();
this.btnPageSetup = new MaterialSkin.Controls.MaterialButton();
this.btnPrintLabel = new MaterialSkin.Controls.MaterialButton();
this.lblProductBarcode = new MaterialSkin.Controls.MaterialLabel();
this.lblProductSku = new MaterialSkin.Controls.MaterialLabel();
this.lblProductName = new MaterialSkin.Controls.MaterialLabel();
this.btnGetData = new MaterialSkin.Controls.MaterialButton();
this.txtOfferId = new MaterialSkin.Controls.MaterialTextBox2();
this.pageSetupDialog1 = new System.Windows.Forms.PageSetupDialog();
this.materialCard1 = new MaterialSkin.Controls.MaterialCard();
this.materialLabel1 = new MaterialSkin.Controls.MaterialLabel();
this.materialCard2 = new MaterialSkin.Controls.MaterialCard();
this.materialCard3 = new MaterialSkin.Controls.MaterialCard();
this.materialCard1.SuspendLayout();
this.materialCard2.SuspendLayout();
this.materialCard3.SuspendLayout();
this.SuspendLayout();
//
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(12, 94); // Скорректировано
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(51, 13);
this.label3.TabIndex = 4;
this.label3.Text = "Артикул:";
//
// txtOfferId
//
this.txtOfferId.Enabled = false;
this.txtOfferId.Location = new System.Drawing.Point(88, 91); // Скорректировано
this.txtOfferId.Name = "txtOfferId";
this.txtOfferId.Size = new System.Drawing.Size(176, 20);
this.txtOfferId.TabIndex = 3; // TabIndex изменен
this.txtOfferId.TextChanged += new System.EventHandler(this.txtOfferId_TextChanged);
//
// btnGetData
//
this.btnGetData.Enabled = false;
this.btnGetData.Location = new System.Drawing.Point(270, 89); // Скорректировано
this.btnGetData.Name = "btnGetData";
this.btnGetData.Size = new System.Drawing.Size(118, 23);
this.btnGetData.TabIndex = 4; // TabIndex изменен
this.btnGetData.Text = "Получить данные";
this.btnGetData.UseVisualStyleBackColor = true;
this.btnGetData.Click += new System.EventHandler(this.btnGetData_Click);
//
// lblProductName
//
this.lblProductName.AutoSize = true;
this.lblProductName.Location = new System.Drawing.Point(12, 133); // Скорректировано
this.lblProductName.Name = "lblProductName";
this.lblProductName.Size = new System.Drawing.Size(60, 13);
this.lblProductName.TabIndex = 5;
this.lblProductName.Text = "Название:";
//
// lblProductSku
//
this.lblProductSku.AutoSize = true;
this.lblProductSku.Location = new System.Drawing.Point(12, 156); // Скорректировано
this.lblProductSku.Name = "lblProductSku";
this.lblProductSku.Size = new System.Drawing.Size(51, 13);
this.lblProductSku.TabIndex = 6;
this.lblProductSku.Text = "Артикул:";
//
// lblProductBarcode
//
this.lblProductBarcode.AutoSize = true;
this.lblProductBarcode.Location = new System.Drawing.Point(12, 179); // Скорректировано
this.lblProductBarcode.Name = "lblProductBarcode";
this.lblProductBarcode.Size = new System.Drawing.Size(59, 13);
this.lblProductBarcode.TabIndex = 7;
this.lblProductBarcode.Text = "Штрихкод:";
//
// btnPrintLabel
//
this.btnPrintLabel.Enabled = false;
this.btnPrintLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
this.btnPrintLabel.Location = new System.Drawing.Point(16, 214); // Скорректировано
this.btnPrintLabel.Name = "btnPrintLabel";
this.btnPrintLabel.Size = new System.Drawing.Size(373, 33);
this.btnPrintLabel.TabIndex = 8; // TabIndex изменен
this.btnPrintLabel.Text = "Печать этикетки";
this.btnPrintLabel.UseVisualStyleBackColor = true;
this.btnPrintLabel.Click += new System.EventHandler(this.btnPrintLabel_Click);
//
//
// lblStatus
//
//
this.lblStatus.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.lblStatus.AutoSize = true;
this.lblStatus.Location = new System.Drawing.Point(13, 260); // Скорректировано
this.lblStatus.Depth = 0;
this.lblStatus.Font = new System.Drawing.Font("Roboto", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel);
this.lblStatus.FontType = MaterialSkin.MaterialSkinManager.fontType.Caption;
this.lblStatus.Location = new System.Drawing.Point(14, 478);
this.lblStatus.MouseState = MaterialSkin.MouseState.HOVER;
this.lblStatus.Name = "lblStatus";
this.lblStatus.Size = new System.Drawing.Size(44, 13);
this.lblStatus.TabIndex = 9;
this.lblStatus.Size = new System.Drawing.Size(43, 14);
this.lblStatus.TabIndex = 7;
this.lblStatus.Text = "Статус:";
//
//
// cmbStores
//
//
this.cmbStores.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.cmbStores.AutoResize = false;
this.cmbStores.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(255)))));
this.cmbStores.Depth = 0;
this.cmbStores.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawVariable;
this.cmbStores.DropDownHeight = 118;
this.cmbStores.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.cmbStores.DropDownWidth = 121;
this.cmbStores.Enabled = false;
this.cmbStores.Font = new System.Drawing.Font("Microsoft Sans Serif", 14F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel);
this.cmbStores.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(222)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))));
this.cmbStores.FormattingEnabled = true;
this.cmbStores.Location = new System.Drawing.Point(88, 24);
this.cmbStores.Hint = "Выберите магазин";
this.cmbStores.IntegralHeight = false;
this.cmbStores.ItemHeight = 29;
this.cmbStores.Location = new System.Drawing.Point(17, 38);
this.cmbStores.MaxDropDownItems = 4;
this.cmbStores.MouseState = MaterialSkin.MouseState.OUT;
this.cmbStores.Name = "cmbStores";
this.cmbStores.Size = new System.Drawing.Size(176, 21);
this.cmbStores.Size = new System.Drawing.Size(248, 35);
this.cmbStores.StartIndex = 0;
this.cmbStores.TabIndex = 0;
this.cmbStores.UseTallSize = false;
this.cmbStores.SelectedIndexChanged += new System.EventHandler(this.cmbStores_SelectedIndexChanged);
//
//
// btnManageStores
//
this.btnManageStores.Location = new System.Drawing.Point(270, 23);
//
this.btnManageStores.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnManageStores.AutoSize = false;
this.btnManageStores.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
this.btnManageStores.Density = MaterialSkin.Controls.MaterialButton.MaterialButtonDensity.Default;
this.btnManageStores.Depth = 0;
this.btnManageStores.HighEmphasis = false;
this.btnManageStores.Icon = null;
this.btnManageStores.Location = new System.Drawing.Point(281, 38);
this.btnManageStores.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6);
this.btnManageStores.MouseState = MaterialSkin.MouseState.HOVER;
this.btnManageStores.Name = "btnManageStores";
this.btnManageStores.Size = new System.Drawing.Size(118, 23);
this.btnManageStores.NoAccentTextColor = System.Drawing.Color.Empty;
this.btnManageStores.Size = new System.Drawing.Size(148, 36);
this.btnManageStores.TabIndex = 1;
this.btnManageStores.Text = "Упр. магазинами...";
this.btnManageStores.Text = "Упр. магазинами";
this.btnManageStores.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Outlined;
this.btnManageStores.UseAccentColor = false;
this.btnManageStores.UseVisualStyleBackColor = true;
this.btnManageStores.Click += new System.EventHandler(this.btnManageStores_Click);
//
// labelStore
//
this.labelStore.AutoSize = true;
this.labelStore.Location = new System.Drawing.Point(12, 27);
this.labelStore.Name = "labelStore";
this.labelStore.Size = new System.Drawing.Size(54, 13);
this.labelStore.TabIndex = 15;
this.labelStore.Text = "Магазин:";
//
//
// btnPageSetup
// *** Новая кнопка Настройки принтера ***
this.btnPageSetup.Location = new System.Drawing.Point(270, 53);
//
this.btnPageSetup.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnPageSetup.AutoSize = false;
this.btnPageSetup.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
this.btnPageSetup.Density = MaterialSkin.Controls.MaterialButton.MaterialButtonDensity.Default;
this.btnPageSetup.Depth = 0;
this.btnPageSetup.Enabled = false;
this.btnPageSetup.HighEmphasis = false;
this.btnPageSetup.Icon = null;
this.btnPageSetup.Location = new System.Drawing.Point(281, 84);
this.btnPageSetup.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6);
this.btnPageSetup.MouseState = MaterialSkin.MouseState.HOVER;
this.btnPageSetup.Name = "btnPageSetup";
this.btnPageSetup.Size = new System.Drawing.Size(118, 23);
this.btnPageSetup.TabIndex = 2; // Изменен TabIndex
this.btnPageSetup.Text = "Настройка принтера";
this.btnPageSetup.NoAccentTextColor = System.Drawing.Color.Empty;
this.btnPageSetup.Size = new System.Drawing.Size(148, 36);
this.btnPageSetup.TabIndex = 2;
this.btnPageSetup.Text = "Настр. принтера";
this.btnPageSetup.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Outlined;
this.btnPageSetup.UseAccentColor = false;
this.btnPageSetup.UseVisualStyleBackColor = true;
this.btnPageSetup.Click += new System.EventHandler(this.btnPageSetup_Click);
//
//
// btnPrintLabel
//
this.btnPrintLabel.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.btnPrintLabel.AutoSize = false;
this.btnPrintLabel.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
this.btnPrintLabel.Density = MaterialSkin.Controls.MaterialButton.MaterialButtonDensity.Default;
this.btnPrintLabel.Depth = 0;
this.btnPrintLabel.Enabled = false;
this.btnPrintLabel.HighEmphasis = true;
this.btnPrintLabel.Icon = null;
this.btnPrintLabel.Location = new System.Drawing.Point(17, 422);
this.btnPrintLabel.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6);
this.btnPrintLabel.MouseState = MaterialSkin.MouseState.HOVER;
this.btnPrintLabel.Name = "btnPrintLabel";
this.btnPrintLabel.NoAccentTextColor = System.Drawing.Color.Empty;
this.btnPrintLabel.Size = new System.Drawing.Size(446, 36);
this.btnPrintLabel.TabIndex = 6;
this.btnPrintLabel.Text = "Печать Этикетки";
this.btnPrintLabel.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Contained;
this.btnPrintLabel.UseAccentColor = true;
this.btnPrintLabel.UseVisualStyleBackColor = true;
this.btnPrintLabel.Click += new System.EventHandler(this.btnPrintLabel_Click);
//
// lblProductBarcode
//
this.lblProductBarcode.AutoSize = true;
this.lblProductBarcode.Depth = 0;
this.lblProductBarcode.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel);
this.lblProductBarcode.Location = new System.Drawing.Point(14, 68);
this.lblProductBarcode.MouseState = MaterialSkin.MouseState.HOVER;
this.lblProductBarcode.Name = "lblProductBarcode";
this.lblProductBarcode.Size = new System.Drawing.Size(82, 19);
this.lblProductBarcode.TabIndex = 2;
this.lblProductBarcode.Text = "Штрихкод:";
//
// lblProductSku
//
this.lblProductSku.AutoSize = true;
this.lblProductSku.Depth = 0;
this.lblProductSku.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel);
this.lblProductSku.Location = new System.Drawing.Point(14, 42);
this.lblProductSku.MouseState = MaterialSkin.MouseState.HOVER;
this.lblProductSku.Name = "lblProductSku";
this.lblProductSku.Size = new System.Drawing.Size(67, 19);
this.lblProductSku.TabIndex = 1;
this.lblProductSku.Text = "Артикул:";
//
// lblProductName
//
this.lblProductName.AutoSize = true;
this.lblProductName.Depth = 0;
this.lblProductName.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel);
this.lblProductName.Location = new System.Drawing.Point(14, 16);
this.lblProductName.MouseState = MaterialSkin.MouseState.HOVER;
this.lblProductName.Name = "lblProductName";
this.lblProductName.Size = new System.Drawing.Size(77, 19);
this.lblProductName.TabIndex = 0;
this.lblProductName.Text = "Название:";
//
// btnGetData
//
this.btnGetData.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnGetData.AutoSize = false;
this.btnGetData.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
this.btnGetData.Density = MaterialSkin.Controls.MaterialButton.MaterialButtonDensity.Default;
this.btnGetData.Depth = 0;
this.btnGetData.Enabled = false;
this.btnGetData.HighEmphasis = true;
this.btnGetData.Icon = null;
this.btnGetData.Location = new System.Drawing.Point(284, 21);
this.btnGetData.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6);
this.btnGetData.MouseState = MaterialSkin.MouseState.HOVER;
this.btnGetData.Name = "btnGetData";
this.btnGetData.NoAccentTextColor = System.Drawing.Color.Empty;
this.btnGetData.Size = new System.Drawing.Size(143, 36);
this.btnGetData.TabIndex = 4;
this.btnGetData.Text = "Получить данные";
this.btnGetData.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Contained;
this.btnGetData.UseAccentColor = false;
this.btnGetData.UseVisualStyleBackColor = true;
this.btnGetData.Click += new System.EventHandler(this.btnGetData_Click);
//
// txtOfferId
//
this.txtOfferId.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.txtOfferId.AnimateReadOnly = false;
this.txtOfferId.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None;
this.txtOfferId.CharacterCasing = System.Windows.Forms.CharacterCasing.Normal;
this.txtOfferId.Depth = 0;
this.txtOfferId.Enabled = false;
this.txtOfferId.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel);
this.txtOfferId.HideSelection = true;
this.txtOfferId.Hint = "Артикул товара (offer_id)";
this.txtOfferId.LeadingIcon = null;
this.txtOfferId.Location = new System.Drawing.Point(17, 14);
this.txtOfferId.MaxLength = 50;
this.txtOfferId.MouseState = MaterialSkin.MouseState.OUT;
this.txtOfferId.Name = "txtOfferId";
this.txtOfferId.PasswordChar = '\0';
this.txtOfferId.PrefixSuffixText = null;
this.txtOfferId.ReadOnly = false;
this.txtOfferId.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.txtOfferId.SelectedText = "";
this.txtOfferId.SelectionLength = 0;
this.txtOfferId.SelectionStart = 0;
this.txtOfferId.ShortcutsEnabled = true;
this.txtOfferId.Size = new System.Drawing.Size(254, 48);
this.txtOfferId.TabIndex = 3;
this.txtOfferId.TabStop = false;
this.txtOfferId.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
this.txtOfferId.TrailingIcon = null;
this.txtOfferId.UseSystemPasswordChar = false;
this.txtOfferId.TextChanged += new System.EventHandler(this.txtOfferId_TextChanged);
//
// pageSetupDialog1
// *** Диалог настройки страницы ***
this.pageSetupDialog1 = new System.Windows.Forms.PageSetupDialog();
//
this.pageSetupDialog1.EnableMetric = true;
//
//
// materialCard1
//
this.materialCard1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.materialCard1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(255)))));
this.materialCard1.Controls.Add(this.materialLabel1);
this.materialCard1.Controls.Add(this.cmbStores);
this.materialCard1.Controls.Add(this.btnManageStores);
this.materialCard1.Controls.Add(this.btnPageSetup);
this.materialCard1.Depth = 0;
this.materialCard1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(222)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))));
this.materialCard1.Location = new System.Drawing.Point(17, 78);
this.materialCard1.Margin = new System.Windows.Forms.Padding(14);
this.materialCard1.MouseState = MaterialSkin.MouseState.HOVER;
this.materialCard1.Name = "materialCard1";
this.materialCard1.Padding = new System.Windows.Forms.Padding(14);
this.materialCard1.Size = new System.Drawing.Size(446, 137);
this.materialCard1.TabIndex = 0;
//
// materialLabel1
//
this.materialLabel1.AutoSize = true;
this.materialLabel1.Depth = 0;
this.materialLabel1.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel);
this.materialLabel1.Location = new System.Drawing.Point(17, 14);
this.materialLabel1.MouseState = MaterialSkin.MouseState.HOVER;
this.materialLabel1.Name = "materialLabel1";
this.materialLabel1.Size = new System.Drawing.Size(126, 19);
this.materialLabel1.TabIndex = 3;
this.materialLabel1.Text = "Выбор магазина";
//
// materialCard2
//
this.materialCard2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.materialCard2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(255)))));
this.materialCard2.Controls.Add(this.txtOfferId);
this.materialCard2.Controls.Add(this.btnGetData);
this.materialCard2.Depth = 0;
this.materialCard2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(222)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))));
this.materialCard2.Location = new System.Drawing.Point(17, 218);
this.materialCard2.Margin = new System.Windows.Forms.Padding(14);
this.materialCard2.MouseState = MaterialSkin.MouseState.HOVER;
this.materialCard2.Name = "materialCard2";
this.materialCard2.Padding = new System.Windows.Forms.Padding(14);
this.materialCard2.Size = new System.Drawing.Size(446, 75);
this.materialCard2.TabIndex = 1;
//
// materialCard3
//
this.materialCard3.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.materialCard3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(255)))));
this.materialCard3.Controls.Add(this.lblProductName);
this.materialCard3.Controls.Add(this.lblProductSku);
this.materialCard3.Controls.Add(this.lblProductBarcode);
this.materialCard3.Depth = 0;
this.materialCard3.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(222)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))));
this.materialCard3.Location = new System.Drawing.Point(17, 297);
this.materialCard3.Margin = new System.Windows.Forms.Padding(14);
this.materialCard3.MinimumSize = new System.Drawing.Size(0, 100);
this.materialCard3.MouseState = MaterialSkin.MouseState.HOVER;
this.materialCard3.Name = "materialCard3";
this.materialCard3.Padding = new System.Windows.Forms.Padding(14);
this.materialCard3.Size = new System.Drawing.Size(446, 105);
this.materialCard3.TabIndex = 5;
//
// Form1
//
//
this.AcceptButton = this.btnGetData;
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(404, 288); // Скорректирован размер
this.Controls.Add(this.btnPageSetup); // Добавлена кнопка
this.Controls.Add(this.labelStore);
this.Controls.Add(this.btnManageStores);
this.Controls.Add(this.cmbStores);
this.Controls.Add(this.lblStatus);
this.ClientSize = new System.Drawing.Size(480, 502);
this.Controls.Add(this.materialCard1);
this.Controls.Add(this.materialCard2);
this.Controls.Add(this.materialCard3);
this.Controls.Add(this.btnPrintLabel);
this.Controls.Add(this.lblProductBarcode);
this.Controls.Add(this.lblProductSku);
this.Controls.Add(this.lblProductName);
this.Controls.Add(this.btnGetData);
this.Controls.Add(this.txtOfferId);
this.Controls.Add(this.label3);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.Controls.Add(this.lblStatus);
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "Form1";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "Генератор внутренних этикеток Ozon";
this.Text = "Генератор Этикеток Ozon";
this.materialCard1.ResumeLayout(false);
this.materialCard1.PerformLayout();
this.materialCard2.ResumeLayout(false);
this.materialCard3.ResumeLayout(false);
this.materialCard3.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
} // Конец InitializeComponent
#endregion
private System.Windows.Forms.Label label3;
private System.Windows.Forms.TextBox txtOfferId;
private System.Windows.Forms.Button btnGetData;
private System.Windows.Forms.Label lblProductName;
private System.Windows.Forms.Label lblProductSku;
private System.Windows.Forms.Label lblProductBarcode;
private System.Windows.Forms.Button btnPrintLabel;
private System.Windows.Forms.Label lblStatus;
private System.Windows.Forms.ComboBox cmbStores;
private System.Windows.Forms.Button btnManageStores;
private System.Windows.Forms.Label labelStore;
private System.Windows.Forms.Button btnPageSetup; // Добавлено
private System.Windows.Forms.PageSetupDialog pageSetupDialog1; // Добавлено
// Обновляем список полей класса
private MaterialSkin.Controls.MaterialLabel lblStatus;
private MaterialSkin.Controls.MaterialComboBox cmbStores;
private MaterialSkin.Controls.MaterialButton btnManageStores;
private MaterialSkin.Controls.MaterialButton btnPageSetup;
private MaterialSkin.Controls.MaterialButton btnPrintLabel; // Имя оставлено
private MaterialSkin.Controls.MaterialLabel lblProductBarcode;
private MaterialSkin.Controls.MaterialLabel lblProductSku;
private MaterialSkin.Controls.MaterialLabel lblProductName;
private MaterialSkin.Controls.MaterialButton btnGetData;
private MaterialSkin.Controls.MaterialTextBox2 txtOfferId; // Имя оставлено
private System.Windows.Forms.PageSetupDialog pageSetupDialog1;
private MaterialSkin.Controls.MaterialCard materialCard1;
private MaterialSkin.Controls.MaterialLabel materialLabel1;
private MaterialSkin.Controls.MaterialCard materialCard2;
private MaterialSkin.Controls.MaterialCard materialCard3;
// MaterialDivider убран
}
}

View File

@ -20,7 +20,7 @@ using ZXing.Windows.Compatibility;
namespace OzonInternalLabelPrinter // Убедитесь, что это ваше пространство имен
{
public partial class Form1 : Form
public partial class Form1 : MaterialSkin.Controls.MaterialForm // <-- Должно быть так
{
private HttpClient _httpClient;
// Bitmap больше не нужен как поле класса

View File

@ -117,4 +117,7 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="pageSetupDialog1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>

View File

@ -1,4 +1,6 @@
namespace SKLADm
using MaterialSkin.Controls; // Добавлено
namespace OzonInternalLabelPrinter // Замените на ваше пространство имен
{
partial class FormManageStores
{
@ -28,174 +30,204 @@
/// </summary>
private void InitializeComponent()
{
this.lstStores = new System.Windows.Forms.ListBox();
this.label1 = new System.Windows.Forms.Label();
this.lstStores = new MaterialSkin.Controls.MaterialListBox(); // Изменено на MaterialListBox
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.btnAddStore = new System.Windows.Forms.Button();
this.txtEditApiKey = new System.Windows.Forms.TextBox();
this.label4 = new System.Windows.Forms.Label();
this.txtEditClientId = new System.Windows.Forms.TextBox();
this.label3 = new System.Windows.Forms.Label();
this.txtStoreName = new System.Windows.Forms.TextBox();
this.label2 = new System.Windows.Forms.Label();
this.btnDeleteStore = new System.Windows.Forms.Button();
this.btnClose = new System.Windows.Forms.Button();
this.btnAddStore = new MaterialSkin.Controls.MaterialButton(); // Изменено
this.txtEditApiKey = new MaterialSkin.Controls.MaterialTextBox(); // Изменено
this.txtEditClientId = new MaterialSkin.Controls.MaterialTextBox(); // Изменено
this.txtStoreName = new MaterialSkin.Controls.MaterialTextBox(); // Изменено
this.btnDeleteStore = new MaterialSkin.Controls.MaterialButton(); // Изменено
this.btnClose = new MaterialSkin.Controls.MaterialButton(); // Изменено
this.groupBox1.SuspendLayout();
this.SuspendLayout();
//
// lstStores
//
this.lstStores.FormattingEnabled = true;
this.lstStores.Location = new System.Drawing.Point(12, 25);
this.lstStores.BackColor = System.Drawing.Color.White;
this.lstStores.BorderColor = System.Drawing.Color.LightGray;
this.lstStores.Depth = 0;
this.lstStores.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel);
this.lstStores.Location = new System.Drawing.Point(17, 77); // Сдвинуто вниз под Material Bar
this.lstStores.MouseState = MaterialSkin.MouseState.HOVER;
this.lstStores.Name = "lstStores";
this.lstStores.Size = new System.Drawing.Size(188, 199); // Adjust height as needed
this.lstStores.SelectedIndex = -1;
this.lstStores.SelectedItem = null;
this.lstStores.Size = new System.Drawing.Size(220, 231); // Примерный размер
this.lstStores.TabIndex = 0;
// Add event handler if you want to display details on selection:
// this.lstStores.SelectedIndexChanged += new System.EventHandler(this.lstStores_SelectedIndexChanged);
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(12, 9);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(121, 13);
this.label1.TabIndex = 1;
this.label1.Text = "Сохраненные магазины:";
// Можно добавить обработчик для отображения деталей при выборе
// this.lstStores.SelectedIndexChanged += new MaterialSkin.Controls.MaterialListBox.SelectedIndexChangedEventHandler(this.lstStores_SelectedIndexChanged);
//
// groupBox1
//
this.groupBox1.Controls.Add(this.btnAddStore);
this.groupBox1.Controls.Add(this.txtEditApiKey);
this.groupBox1.Controls.Add(this.label4);
this.groupBox1.Controls.Add(this.txtEditClientId);
this.groupBox1.Controls.Add(this.label3);
this.groupBox1.Controls.Add(this.txtStoreName);
this.groupBox1.Controls.Add(this.label2);
this.groupBox1.Location = new System.Drawing.Point(219, 25);
this.groupBox1.Location = new System.Drawing.Point(258, 77);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(303, 155); // Adjust size as needed
this.groupBox1.Size = new System.Drawing.Size(313, 231); // Примерный размер
this.groupBox1.TabIndex = 2;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "Добавить новый магазин";
this.groupBox1.Text = "Добавить/Редактировать магазин";
//
// btnAddStore
//
this.btnAddStore.Location = new System.Drawing.Point(196, 118);
this.btnAddStore.AutoSize = false;
this.btnAddStore.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
this.btnAddStore.Density = MaterialSkin.Controls.MaterialButton.MaterialButtonDensity.Default;
this.btnAddStore.Depth = 0;
this.btnAddStore.HighEmphasis = true;
this.btnAddStore.Icon = null;
this.btnAddStore.Location = new System.Drawing.Point(188, 186);
this.btnAddStore.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6);
this.btnAddStore.MouseState = MaterialSkin.MouseState.HOVER;
this.btnAddStore.Name = "btnAddStore";
this.btnAddStore.Size = new System.Drawing.Size(97, 23);
this.btnAddStore.TabIndex = 6;
this.btnAddStore.NoAccentTextColor = System.Drawing.Color.Empty;
this.btnAddStore.Size = new System.Drawing.Size(115, 36);
this.btnAddStore.TabIndex = 3; // Последний таб в группе
this.btnAddStore.Text = "Добавить";
this.btnAddStore.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Contained;
this.btnAddStore.UseAccentColor = false;
this.btnAddStore.UseVisualStyleBackColor = true;
this.btnAddStore.Click += new System.EventHandler(this.btnAddStore_Click);
//
// txtEditApiKey
//
this.txtEditApiKey.Location = new System.Drawing.Point(74, 86);
this.txtEditApiKey.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.txtEditApiKey.AnimateReadOnly = false;
this.txtEditApiKey.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.txtEditApiKey.Depth = 0;
this.txtEditApiKey.Font = new System.Drawing.Font("Roboto", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel);
this.txtEditApiKey.Hint = "Api-Key";
this.txtEditApiKey.LeadingIcon = null;
this.txtEditApiKey.Location = new System.Drawing.Point(15, 130);
this.txtEditApiKey.MaxLength = 200; // Увеличил
this.txtEditApiKey.MouseState = MaterialSkin.MouseState.OUT;
this.txtEditApiKey.Multiline = false;
this.txtEditApiKey.Name = "txtEditApiKey";
this.txtEditApiKey.PasswordChar = '*';
this.txtEditApiKey.Size = new System.Drawing.Size(219, 20);
this.txtEditApiKey.TabIndex = 5;
//
// label4
//
this.label4.AutoSize = true;
this.label4.Location = new System.Drawing.Point(16, 89);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(48, 13);
this.label4.TabIndex = 4;
this.label4.Text = "Api-Key:";
this.txtEditApiKey.Password = true; // Маска
this.txtEditApiKey.Size = new System.Drawing.Size(288, 50);
this.txtEditApiKey.TabIndex = 2;
this.txtEditApiKey.Text = "";
this.txtEditApiKey.TrailingIcon = null;
//
// txtEditClientId
//
this.txtEditClientId.Location = new System.Drawing.Point(74, 57);
this.txtEditClientId.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.txtEditClientId.AnimateReadOnly = false;
this.txtEditClientId.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.txtEditClientId.Depth = 0;
this.txtEditClientId.Font = new System.Drawing.Font("Roboto", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel);
this.txtEditClientId.Hint = "Client ID";
this.txtEditClientId.LeadingIcon = null;
this.txtEditClientId.Location = new System.Drawing.Point(15, 78);
this.txtEditClientId.MaxLength = 50;
this.txtEditClientId.MouseState = MaterialSkin.MouseState.OUT;
this.txtEditClientId.Multiline = false;
this.txtEditClientId.Name = "txtEditClientId";
this.txtEditClientId.Size = new System.Drawing.Size(219, 20);
this.txtEditClientId.TabIndex = 3;
//
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(16, 60);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(50, 13);
this.label3.TabIndex = 2;
this.label3.Text = "Client ID:";
this.txtEditClientId.Size = new System.Drawing.Size(288, 50);
this.txtEditClientId.TabIndex = 1;
this.txtEditClientId.Text = "";
this.txtEditClientId.TrailingIcon = null;
//
// txtStoreName
//
this.txtStoreName.Location = new System.Drawing.Point(74, 28);
this.txtStoreName.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.txtStoreName.AnimateReadOnly = false;
this.txtStoreName.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.txtStoreName.Depth = 0;
this.txtStoreName.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel);
this.txtStoreName.Hint = "Название магазина";
this.txtStoreName.LeadingIcon = null;
this.txtStoreName.Location = new System.Drawing.Point(15, 26);
this.txtStoreName.MaxLength = 50;
this.txtStoreName.MouseState = MaterialSkin.MouseState.OUT;
this.txtStoreName.Multiline = false;
this.txtStoreName.Name = "txtStoreName";
this.txtStoreName.Size = new System.Drawing.Size(219, 20);
this.txtStoreName.TabIndex = 1;
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(16, 31);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(60, 13);
this.label2.TabIndex = 0;
this.label2.Text = "Название:";
this.txtStoreName.Size = new System.Drawing.Size(288, 50);
this.txtStoreName.TabIndex = 0;
this.txtStoreName.Text = "";
this.txtStoreName.TrailingIcon = null;
//
// btnDeleteStore
//
this.btnDeleteStore.Location = new System.Drawing.Point(12, 230); // Position below listbox
this.btnDeleteStore.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.btnDeleteStore.AutoSize = false;
this.btnDeleteStore.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
this.btnDeleteStore.Density = MaterialSkin.Controls.MaterialButton.MaterialButtonDensity.Default;
this.btnDeleteStore.Depth = 0;
this.btnDeleteStore.HighEmphasis = false; // Менее важная
this.btnDeleteStore.Icon = null; // Можно добавить иконку корзины
this.btnDeleteStore.Location = new System.Drawing.Point(17, 317);
this.btnDeleteStore.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6);
this.btnDeleteStore.MouseState = MaterialSkin.MouseState.HOVER;
this.btnDeleteStore.Name = "btnDeleteStore";
this.btnDeleteStore.Size = new System.Drawing.Size(188, 23);
this.btnDeleteStore.NoAccentTextColor = System.Drawing.Color.Empty;
this.btnDeleteStore.Size = new System.Drawing.Size(220, 36);
this.btnDeleteStore.TabIndex = 3;
this.btnDeleteStore.Text = "Удалить выбранный";
this.btnDeleteStore.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Outlined; // Другой стиль
this.btnDeleteStore.UseAccentColor = false;
this.btnDeleteStore.UseVisualStyleBackColor = true;
this.btnDeleteStore.Click += new System.EventHandler(this.btnDeleteStore_Click);
//
// btnClose
//
this.btnClose.DialogResult = System.Windows.Forms.DialogResult.Cancel; // Makes Esc close the form
this.btnClose.Location = new System.Drawing.Point(447, 230); // Position bottom right
this.btnClose.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.btnClose.AutoSize = false;
this.btnClose.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
this.btnClose.Density = MaterialSkin.Controls.MaterialButton.MaterialButtonDensity.Default;
this.btnClose.Depth = 0;
this.btnClose.DialogResult = System.Windows.Forms.DialogResult.Cancel; // Esc
this.btnClose.HighEmphasis = true;
this.btnClose.Icon = null;
this.btnClose.Location = new System.Drawing.Point(471, 317);
this.btnClose.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6);
this.btnClose.MouseState = MaterialSkin.MouseState.HOVER;
this.btnClose.Name = "btnClose";
this.btnClose.Size = new System.Drawing.Size(75, 23);
this.btnClose.NoAccentTextColor = System.Drawing.Color.Empty;
this.btnClose.Size = new System.Drawing.Size(100, 36);
this.btnClose.TabIndex = 4;
this.btnClose.Text = "Закрыть";
this.btnClose.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Contained;
this.btnClose.UseAccentColor = false;
this.btnClose.UseVisualStyleBackColor = true;
this.btnClose.Click += new System.EventHandler(this.btnClose_Click);
//
// FormManageStores
//
this.AcceptButton = this.btnAddStore; // Enter in groupbox adds store
this.AcceptButton = this.btnAddStore;
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.CancelButton = this.btnClose; // Esc closes form
this.ClientSize = new System.Drawing.Size(534, 267); // Adjust size as needed
this.CancelButton = this.btnClose;
this.ClientSize = new System.Drawing.Size(588, 368); // Размер окна
this.Controls.Add(this.btnClose);
this.Controls.Add(this.btnDeleteStore);
this.Controls.Add(this.groupBox1);
this.Controls.Add(this.label1);
this.Controls.Add(this.lstStores);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; // Prevent resizing
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "FormManageStores";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; // Center over Form1
this.Padding = new System.Windows.Forms.Padding(3, 64, 3, 3); // Отступ под Material Bar
this.Sizable = false; // Запрет изменения размера
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.Text = "Управление магазинами Ozon";
this.groupBox1.ResumeLayout(false);
this.groupBox1.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.ListBox lstStores;
private System.Windows.Forms.Label label1;
private MaterialSkin.Controls.MaterialListBox lstStores; // Изменено
private System.Windows.Forms.GroupBox groupBox1;
private System.Windows.Forms.Button btnAddStore;
private System.Windows.Forms.TextBox txtEditApiKey;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.TextBox txtEditClientId;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.TextBox txtStoreName;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Button btnDeleteStore;
private System.Windows.Forms.Button btnClose;
private MaterialSkin.Controls.MaterialButton btnAddStore; // Изменено
private MaterialSkin.Controls.MaterialTextBox txtEditApiKey; // Изменено
private MaterialSkin.Controls.MaterialTextBox txtEditClientId; // Изменено
private MaterialSkin.Controls.MaterialTextBox txtStoreName; // Изменено
private MaterialSkin.Controls.MaterialButton btnDeleteStore; // Изменено
private MaterialSkin.Controls.MaterialButton btnClose; // Изменено
}
}
}

View File

@ -1,27 +1,36 @@
using Newtonsoft.Json;
using OzonInternalLabelPrinter; // Добавляем пространство имен для OzonStore
using System;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Cryptography; // Для ProtectedData
using System.Security.Cryptography;
using System.Text;
using System.Windows.Forms;
using MaterialSkin; // Используем MaterialSkin
using MaterialSkin.Controls; // Используем MaterialSkin
using Newtonsoft.Json;
using SKLADm.Properties; // Используем Settings
namespace SKLADm
namespace OzonInternalLabelPrinter // Замените на ваше пространство имен
{
public partial class FormManageStores : Form
// Наследуемся от MaterialForm
public partial class FormManageStores : MaterialForm
{
private List<OzonStore> _stores;
// Энтропия для шифрования (можно оставить null или использовать свой секрет)
private static readonly byte[] s_entropy = null; // Или Encoding.UTF8.GetBytes("MyOptionalEntropy");
// Энтропия (можно оставить null или использовать свой секрет, ГЛАВНОЕ - одинаковый в Form1 и FormManageStores)
private static readonly byte[] s_entropy = null;
public FormManageStores()
{
InitializeComponent();
// Настройка MaterialSkin для этой формы
var materialSkinManager = MaterialSkinManager.Instance;
materialSkinManager.AddFormToManage(this);
// Тема и схема наследуются от Form1, т.к. она тоже управляется менеджером
LoadStoresToListBox();
}
// --- Шифрование Api-Key ---
// Шифрование Api-Key
private string EncryptApiKey(string apiKey)
{
if (string.IsNullOrEmpty(apiKey)) return string.Empty;
@ -33,15 +42,15 @@ namespace SKLADm
}
catch (Exception ex)
{
MessageBox.Show($"Ошибка шифрования ключа: {ex.Message}", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
return null; // Возвращаем null при ошибке
MaterialMessageBox.Show(this, $"Ошибка шифрования ключа: {ex.Message}", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
return null;
}
}
// --- Загрузка магазинов из настроек ---
// Загрузка магазинов из настроек в ListBox
private void LoadStoresToListBox()
{
string json = Properties.Settings.Default.SavedStoresJson;
string json = Settings.Default.SavedStoresJson;
_stores = new List<OzonStore>();
if (!string.IsNullOrEmpty(json))
{
@ -51,100 +60,139 @@ namespace SKLADm
}
catch (Exception ex)
{
MessageBox.Show($"Ошибка загрузки списка магазинов: {ex.Message}", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning);
_stores = new List<OzonStore>(); // Создаем пустой список при ошибке
MaterialMessageBox.Show(this, $"Ошибка загрузки списка магазинов: {ex.Message}", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning);
_stores = new List<OzonStore>();
}
}
// Сортируем по имени для удобства
_stores = _stores.OrderBy(s => s.StoreName).ToList();
UpdateListBox();
}
// --- Сохранение магазинов в настройки ---
// Сохранение магазинов в настройки
private void SaveStores()
{
try
{
// Сортируем перед сохранением
_stores = _stores.OrderBy(s => s.StoreName).ToList();
string json = JsonConvert.SerializeObject(_stores, Formatting.Indented);
Properties.Settings.Default.SavedStoresJson = json;
Properties.Settings.Default.Save();
Settings.Default.SavedStoresJson = json;
Settings.Default.Save(); // Сохраняем изменения
}
catch (Exception ex)
{
MessageBox.Show($"Ошибка сохранения списка магазинов: {ex.Message}", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
MaterialMessageBox.Show(this, $"Ошибка сохранения списка магазинов: {ex.Message}", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
// --- Обновление ListBox ---
// Обновление MaterialListBox
private void UpdateListBox()
{
lstStores.DataSource = null; // Сначала отвязываем источник
lstStores.DataSource = _stores; // Привязываем обновленный список
lstStores.DisplayMember = "StoreName"; // Отображаем имя
lstStores.Items.Clear(); // Очищаем старые элементы
if (_stores != null)
{
foreach (var store in _stores)
{
// Добавляем каждый магазин как MaterialListBoxItem
lstStores.Items.Add(new MaterialListBoxItem(store.StoreName) { Tag = store });
}
}
// Очищаем поля редактирования
// txtStoreName.Clear();
// txtEditClientId.Clear();
// txtEditApiKey.Clear();
// lstStores.SelectedIndex = -1; // Сбрасываем выбор
}
// --- Кнопка "Добавить магазин" ---
// Кнопка "Добавить магазин"
private void btnAddStore_Click(object sender, EventArgs e)
{
string storeName = txtStoreName.Text.Trim();
string clientId = txtEditClientId.Text.Trim();
string apiKey = txtEditApiKey.Text.Trim(); // Берем ключ как есть
string apiKey = txtEditApiKey.Text; // Не Trim(), т.к. ключи могут иметь пробелы
if (string.IsNullOrEmpty(storeName) || string.IsNullOrEmpty(clientId) || string.IsNullOrEmpty(apiKey))
{
MessageBox.Show("Пожалуйста, заполните все поля: Название, Client ID, Api-Key.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning);
MaterialMessageBox.Show(this, "Пожалуйста, заполните все поля: Название, Client ID, Api-Key.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
// Проверяем, нет ли уже магазина с таким именем
// Проверяем уникальность имени
if (_stores.Any(s => s.StoreName.Equals(storeName, StringComparison.OrdinalIgnoreCase)))
{
MessageBox.Show("Магазин с таким названием уже существует.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning);
MaterialMessageBox.Show(this, "Магазин с таким названием уже существует.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
// Шифруем ключ
string encryptedKey = EncryptApiKey(apiKey);
if (encryptedKey == null) // Если шифрование не удалось
// Проверяем уникальность Client ID (опционально, но полезно)
if (_stores.Any(s => s.ClientId.Equals(clientId, StringComparison.OrdinalIgnoreCase)))
{
return;
if (MaterialMessageBox.Show(this, "Магазин с таким Client ID уже существует. Все равно добавить?", "Предупреждение", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
{
return;
}
}
// Создаем и добавляем магазин
string encryptedKey = EncryptApiKey(apiKey);
if (encryptedKey == null) return; // Ошибка шифрования уже показана
OzonStore newStore = new OzonStore(storeName, clientId, encryptedKey);
_stores.Add(newStore);
// Сохраняем и обновляем список
SaveStores();
UpdateListBox();
// Очищаем поля ввода
// Очищаем поля после добавления
txtStoreName.Clear();
txtEditClientId.Clear();
txtEditApiKey.Clear();
txtStoreName.Focus(); // Фокус на первое поле
}
// --- Кнопка "Удалить выбранный" (Опционально) ---
// Кнопка "Удалить выбранный"
private void btnDeleteStore_Click(object sender, EventArgs e)
{
if (lstStores.SelectedItem is OzonStore selectedStore)
if (lstStores.SelectedItem is MaterialListBoxItem selectedItem && selectedItem.Tag is OzonStore selectedStore)
{
if (MessageBox.Show($"Вы уверены, что хотите удалить магазин '{selectedStore.StoreName}'?", "Подтверждение", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
if (MaterialMessageBox.Show(this, $"Вы уверены, что хотите удалить магазин '{selectedStore.StoreName}'?", "Подтверждение", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
_stores.Remove(selectedStore);
SaveStores();
UpdateListBox();
UpdateListBox(); // Обновляем список на форме
}
}
else
{
MessageBox.Show("Выберите магазин для удаления.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Information);
MaterialMessageBox.Show(this, "Выберите магазин для удаления из списка.", "Информация", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
// --- Кнопка "Закрыть" ---
// Кнопка "Закрыть"
private void btnClose_Click(object sender, EventArgs e)
{
this.DialogResult = DialogResult.OK; // Указываем, что форма закрыта штатно
this.DialogResult = DialogResult.OK; // Возвращаем OK при закрытии
this.Close();
}
// Можно добавить обработчик lstStores_SelectedIndexChanged, если нужно
// отображать ClientID (но не ApiKey!) при выборе магазина в списке.
/*
private void lstStores_SelectedIndexChanged(MaterialListBoxItem item)
{
if (item != null && item.Tag is OzonStore selectedStore)
{
txtStoreName.Text = selectedStore.StoreName;
txtEditClientId.Text = selectedStore.ClientId;
txtEditApiKey.Text = ""; // Никогда не показываем ключ
}
else
{
txtStoreName.Clear();
txtEditClientId.Clear();
txtEditApiKey.Clear();
}
}
*/
}
}
}

View File

@ -1,13 +1,9 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
using OzonInternalLabelPrinter; // Добавляем директиву using для пространства имен с Form1
namespace SKLADm
namespace OzonInternalLabelPrinter // Замените на ваше пространство имен
{
internal static class Program
static class Program
{
/// <summary>
/// Главная точка входа для приложения.
@ -17,7 +13,7 @@ namespace SKLADm
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
Application.Run(new Form1()); // Запускаем Form1
}
}
}
}

View File

@ -1,69 +1,61 @@
//------------------------------------------------------------------------------
// <auto-generated>
// Этот код создан программным средством.
// Версия среды выполнения: 4.0.30319.42000
// Этот код создан программой.
// Исполняемая версия:4.0.30319.42000
//
// Изменения в этом файле могут привести к неправильному поведению и будут утрачены, если
// код создан повторно.
// Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае
// повторной генерации кода.
// </auto-generated>
//------------------------------------------------------------------------------
namespace SKLADm.Properties
{
namespace SKLADm.Properties {
using System;
/// <summary>
/// Класс ресурсов со строгим типом для поиска локализованных строк и пр.
/// Класс ресурса со строгой типизацией для поиска локализованных строк и т.д.
/// </summary>
// Этот класс был автоматически создан при помощи StronglyTypedResourceBuilder
// класс с помощью таких средств, как ResGen или Visual Studio.
// Для добавления или удаления члена измените файл .ResX, а затем перезапустите ResGen
// с параметром /str или заново постройте свой VS-проект.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
// Этот класс создан автоматически классом StronglyTypedResourceBuilder
// с помощью такого средства, как ResGen или Visual Studio.
// Чтобы добавить или удалить член, измените файл .ResX и снова запустите ResGen
// с параметром /str или перестройте свой проект VS.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources
{
internal class Resources {
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resources()
{
internal Resources() {
}
/// <summary>
/// Возврат кэшированного экземпляра ResourceManager, используемого этим классом.
/// Возвращает кэшированный экземпляр ResourceManager, использованный этим классом.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager
{
get
{
if ((resourceMan == null))
{
internal static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("SKLADm.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// Переопределяет свойство CurrentUICulture текущего потока для всех
/// подстановки ресурсов с помощью этого класса ресурсов со строгим типом.
/// Перезаписывает свойство CurrentUICulture текущего потока для всех
/// обращений к ресурсу с помощью этого класса ресурса со строгой типизацией.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture
{
get
{
internal static global::System.Globalization.CultureInfo Culture {
get {
return resourceCulture;
}
set
{
set {
resourceCulture = value;
}
}

View File

@ -8,12 +8,13 @@
<OutputType>WinExe</OutputType>
<RootNamespace>SKLADm</RootNamespace>
<AssemblyName>SKLADm</AssemblyName>
<TargetFrameworkVersion>v4.6.2</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<Deterministic>true</Deterministic>
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
@ -35,25 +36,63 @@
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="MaterialSkin, Version=2.3.1.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>packages\MaterialSkin.2.2.3.1\lib\net48\MaterialSkin.dll</HintPath>
</Reference>
<Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.ComponentModel.Composition" />
<Reference Include="System.Core" />
<Reference Include="System.Design" />
<Reference Include="System.Drawing.Common, Version=8.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>packages\System.Drawing.Common.8.0.12\lib\net462\System.Drawing.Common.dll</HintPath>
</Reference>
<Reference Include="System.IO, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>packages\System.IO.4.3.0\lib\net462\System.IO.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System.Net.Http, Version=4.1.1.3, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>packages\System.Net.Http.4.3.4\lib\net46\System.Net.Http.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Runtime, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>packages\System.Runtime.4.3.0\lib\net462\System.Runtime.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Security" />
<Reference Include="System.Security.Cryptography.Algorithms, Version=4.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>packages\System.Security.Cryptography.Algorithms.4.3.0\lib\net463\System.Security.Cryptography.Algorithms.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Security.Cryptography.Encoding, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>packages\System.Security.Cryptography.Encoding.4.3.0\lib\net46\System.Security.Cryptography.Encoding.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Security.Cryptography.Primitives, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>packages\System.Security.Cryptography.Primitives.4.3.0\lib\net46\System.Security.Cryptography.Primitives.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Security.Cryptography.ProtectedData, Version=9.0.0.4, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>packages\System.Security.Cryptography.ProtectedData.9.0.4\lib\net462\System.Security.Cryptography.ProtectedData.dll</HintPath>
</Reference>
<Reference Include="System.Security.Cryptography.X509Certificates, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>packages\System.Security.Cryptography.X509Certificates.4.3.0\lib\net461\System.Security.Cryptography.X509Certificates.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Deployment" />
<Reference Include="System.Drawing" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
<Reference Include="zxing, Version=0.16.10.0, Culture=neutral, PublicKeyToken=4e88037ac681fe60, processorArchitecture=MSIL">

View File

@ -1,10 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="MaterialSkin.2" version="2.3.1" targetFramework="net48" />
<package id="Microsoft.NETCore.Platforms" version="1.1.0" targetFramework="net462" />
<package id="NETStandard.Library" version="2.0.3" targetFramework="net462" />
<package id="Newtonsoft.Json" version="13.0.3" targetFramework="net462" />
<package id="System.Drawing.Common" version="8.0.12" targetFramework="net462" />
<package id="System.IO" version="4.3.0" targetFramework="net48" />
<package id="System.Net.Http" version="4.3.4" targetFramework="net48" />
<package id="System.Runtime" version="4.3.0" targetFramework="net48" />
<package id="System.Security.Cryptography.Algorithms" version="4.3.0" targetFramework="net48" />
<package id="System.Security.Cryptography.Encoding" version="4.3.0" targetFramework="net48" />
<package id="System.Security.Cryptography.Primitives" version="4.3.0" targetFramework="net48" />
<package id="System.Security.Cryptography.ProtectedData" version="9.0.4" targetFramework="net462" />
<package id="ZXing.Net" version="0.16.10" targetFramework="net462" />
<package id="System.Security.Cryptography.X509Certificates" version="4.3.0" targetFramework="net48" />
<package id="ZXing.Net" version="0.16.10" targetFramework="net462" requireReinstallation="true" />
<package id="ZXing.Net.Bindings.Windows.Compatibility" version="0.16.13" targetFramework="net462" />
</packages>