diff --git a/Library15Gerimovich/Class1.cs b/Library15Gerimovich/Class1.cs new file mode 100644 index 0000000..0f5dd9b --- /dev/null +++ b/Library15Gerimovich/Class1.cs @@ -0,0 +1,6 @@ +namespace Library15Gerimovich +{ + public class Class1 + { + } +} \ No newline at end of file diff --git a/Library15Gerimovich/DefoltList.Designer.cs b/Library15Gerimovich/DefoltList.Designer.cs new file mode 100644 index 0000000..e5cd2a0 --- /dev/null +++ b/Library15Gerimovich/DefoltList.Designer.cs @@ -0,0 +1,57 @@ +namespace Library15Gerimovich +{ + partial class DefoltList + { + /// + /// Обязательная переменная конструктора. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Освободить все используемые ресурсы. + /// + /// истинно, если управляемый ресурс должен быть удален; иначе ложно. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Код, автоматически созданный конструктором компонентов + + /// + /// Требуемый метод для поддержки конструктора — не изменяйте + /// содержимое этого метода с помощью редактора кода. + /// + private void InitializeComponent() + { + this.listBox = new System.Windows.Forms.ListBox(); + this.SuspendLayout(); + // + // listBox + // + this.listBox.FormattingEnabled = true; + this.listBox.ItemHeight = 15; + this.listBox.Location = new System.Drawing.Point(3, 3); + this.listBox.Name = "listBox"; + this.listBox.Size = new System.Drawing.Size(144, 109); + this.listBox.TabIndex = 0; + // + // DefoltList + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.listBox); + this.Name = "DefoltList"; + this.ResumeLayout(false); + + } + + #endregion + + private ListBox listBox; + } +} diff --git a/Library15Gerimovich/DefoltList.cs b/Library15Gerimovich/DefoltList.cs new file mode 100644 index 0000000..9307f41 --- /dev/null +++ b/Library15Gerimovich/DefoltList.cs @@ -0,0 +1,58 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Library15Gerimovich +{ + public partial class DefoltList : UserControl + { + public event EventHandler? SelectedValueChanged; + + public string SelectedValue + { + get + { + return checkedListBox1.SelectedItem?.ToString() ?? string.Empty; + } + set + { + int index = checkedListBox1.Items.IndexOf(value); + if (index >= 0) + { + checkedListBox1.SelectedIndex = index; + } + else + { + checkedListBox1.ClearSelected(); + } + } + } + + public DefoltList() + { + InitializeComponent(); + } + + public void AddItemToList(string item) + { + ListBox.Items.Add(item); + } + + private void SelectedIndexChanged(object sender, EventArgs e) + { + SelectedValueChanged?.Invoke(this, e); + } + + public void ClearComboBox() + { + checkedListBox1.Items.Clear(); + } + + } +} diff --git a/Library15Gerimovich/DefoltList.resx b/Library15Gerimovich/DefoltList.resx new file mode 100644 index 0000000..f298a7b --- /dev/null +++ b/Library15Gerimovich/DefoltList.resx @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Library15Gerimovich/InputRealNumber.Designer.cs b/Library15Gerimovich/InputRealNumber.Designer.cs new file mode 100644 index 0000000..6a9b08c --- /dev/null +++ b/Library15Gerimovich/InputRealNumber.Designer.cs @@ -0,0 +1,60 @@ +namespace Library15Gerimovich +{ + partial class InputRealNumber + { + /// + /// Обязательная переменная конструктора. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Освободить все используемые ресурсы. + /// + /// истинно, если управляемый ресурс должен быть удален; иначе ложно. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Код, автоматически созданный конструктором компонентов + + /// + /// Требуемый метод для поддержки конструктора — не изменяйте + /// содержимое этого метода с помощью редактора кода. + /// + private void InitializeComponent() + { + this.IsNullCheckBox = new System.Windows.Forms.CheckBox(); + this.SuspendLayout(); + // + // IsNullCheckBox + // + this.IsNullCheckBox.AutoSize = true; + this.IsNullCheckBox.Location = new System.Drawing.Point(42, 103); + this.IsNullCheckBox.Name = "IsNullCheckBox"; + this.IsNullCheckBox.Size = new System.Drawing.Size(83, 19); + this.IsNullCheckBox.TabIndex = 0; + this.IsNullCheckBox.Text = "checkBox1"; + this.IsNullCheckBox.UseVisualStyleBackColor = true; + // + // InputRealNumber + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.IsNullCheckBox); + this.Name = "InputRealNumber"; + this.Size = new System.Drawing.Size(188, 187); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private CheckBox IsNullCheckBox; + } +} diff --git a/Library15Gerimovich/InputRealNumber.cs b/Library15Gerimovich/InputRealNumber.cs new file mode 100644 index 0000000..d696fa7 --- /dev/null +++ b/Library15Gerimovich/InputRealNumber.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Library15Gerimovich +{ + public partial class InputRealNumber : UserControl + { + public InputRealNumber() + { + InitializeComponent(); + } + } +} diff --git a/Library15Gerimovich/InputRealNumber.resx b/Library15Gerimovich/InputRealNumber.resx new file mode 100644 index 0000000..f298a7b --- /dev/null +++ b/Library15Gerimovich/InputRealNumber.resx @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Library15Gerimovich/Library15Gerimovich.csproj b/Library15Gerimovich/Library15Gerimovich.csproj new file mode 100644 index 0000000..060aa1c --- /dev/null +++ b/Library15Gerimovich/Library15Gerimovich.csproj @@ -0,0 +1,10 @@ + + + + net6.0-windows + enable + true + enable + + + diff --git a/Library15Gerimovich/Library15Gerimovich.sln b/Library15Gerimovich/Library15Gerimovich.sln new file mode 100644 index 0000000..694af70 --- /dev/null +++ b/Library15Gerimovich/Library15Gerimovich.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.3.32825.248 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Library15Gerimovich", "Library15Gerimovich.csproj", "{460F98AD-977C-4ABE-B00B-1AA13D0D25C3}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WinFormsAppTest", "..\WinFormsAppTest\WinFormsAppTest.csproj", "{00449FA8-BD19-4F9D-BE64-4B7AB52947A4}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {460F98AD-977C-4ABE-B00B-1AA13D0D25C3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {460F98AD-977C-4ABE-B00B-1AA13D0D25C3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {460F98AD-977C-4ABE-B00B-1AA13D0D25C3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {460F98AD-977C-4ABE-B00B-1AA13D0D25C3}.Release|Any CPU.Build.0 = Release|Any CPU + {00449FA8-BD19-4F9D-BE64-4B7AB52947A4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {00449FA8-BD19-4F9D-BE64-4B7AB52947A4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {00449FA8-BD19-4F9D-BE64-4B7AB52947A4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {00449FA8-BD19-4F9D-BE64-4B7AB52947A4}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {0F19F086-A3D3-46FF-955B-6834FFCCAEBB} + EndGlobalSection +EndGlobal diff --git a/Library15Gerimovich/OutputTableResults.Designer.cs b/Library15Gerimovich/OutputTableResults.Designer.cs new file mode 100644 index 0000000..5aed896 --- /dev/null +++ b/Library15Gerimovich/OutputTableResults.Designer.cs @@ -0,0 +1,60 @@ +namespace Library15Gerimovich +{ + partial class OutputTableResults + { + /// + /// Обязательная переменная конструктора. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Освободить все используемые ресурсы. + /// + /// истинно, если управляемый ресурс должен быть удален; иначе ложно. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Код, автоматически созданный конструктором компонентов + + /// + /// Требуемый метод для поддержки конструктора — не изменяйте + /// содержимое этого метода с помощью редактора кода. + /// + private void InitializeComponent() + { + this.dataGridViewOut = new System.Windows.Forms.DataGridView(); + ((System.ComponentModel.ISupportInitialize)(this.dataGridViewOut)).BeginInit(); + this.SuspendLayout(); + // + // dataGridViewOut + // + this.dataGridViewOut.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dataGridViewOut.Location = new System.Drawing.Point(3, 25); + this.dataGridViewOut.Name = "dataGridViewOut"; + this.dataGridViewOut.RowTemplate.Height = 25; + this.dataGridViewOut.Size = new System.Drawing.Size(240, 150); + this.dataGridViewOut.TabIndex = 0; + // + // OutputTableResults + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.dataGridViewOut); + this.Name = "OutputTableResults"; + this.Size = new System.Drawing.Size(259, 245); + ((System.ComponentModel.ISupportInitialize)(this.dataGridViewOut)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private DataGridView dataGridViewOut; + } +} diff --git a/Library15Gerimovich/OutputTableResults.cs b/Library15Gerimovich/OutputTableResults.cs new file mode 100644 index 0000000..a1f1b2e --- /dev/null +++ b/Library15Gerimovich/OutputTableResults.cs @@ -0,0 +1,114 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Library15Gerimovich +{ + public partial class OutputTableResults : UserControl + { + private readonly List _columnsFildsNames = new(); + + public OutputTableResults() + { + InitializeComponent(); + } + + + public void ConfigureColumns(params CustomDataTableColumnParameter[] columnParameters) + { + dataGridViewOut.Columns.Clear(); + _columnsFildsNames.Clear(); + + for (int i = 0; i < columnParameters.Length; i++) + { + dataGridViewOut.Columns + .Add(columnParameters[i].HeaderName, columnParameters[i].HeaderName); + + var column = dataGridViewOut.Columns[i]; + + column.Visible = columnParameters[i].Visible; + _columnsFildsNames.Add(column.Name); + + if (columnParameters[i].Width != 0) + { + column.Width = columnParameters[i].Width; + } + else + { + column.AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells; + } + } + } + + /// + /// Отчистить таблицу + /// + public void Clear() + => dataGridViewOut.Rows.Clear(); + + /// + /// Индекс выбранной строки + /// + public int SelectedRow + { + get => dataGridViewOut.CurrentRow.Index; + + set + { + dataGridViewOut.CurrentRow.Selected = false; + dataGridViewOut.Rows[value].Selected = true; + } + } + + public TType? GetRow(int rowIndex) + { + Type type = typeof(TType); + var element = type.GetConstructor([])?.Invoke([]); + + if (element is null) + { + return default; + } + + var row = dataGridViewOut.Rows[rowIndex].Cells; + + for (int i = 0; i < dataGridViewOut.ColumnCount; i++) + { + if (string.IsNullOrEmpty(_columnsFildsNames[i])) + { + continue; + } + var field = type.GetProperty(_columnsFildsNames[i]); + field?.SetValue(element, row[i].Value); + } + + return (TType)element; + } + + public void Fill(IList insertValues) + { + Clear(); + + Type type = typeof(TType); + + for (int i = 0; i < insertValues.Count(); ++i) + { + var row = insertValues[i]; + dataGridViewOut.Rows.Add(); + + for (int j = 0; j < _columnsFildsNames.Count; ++j) + { + dataGridViewOut.Rows[i].Cells[j].Value + = type.GetProperty(_columnsFildsNames[j])?.GetValue(row)!; + } + } + } + } +} diff --git a/Library15Gerimovich/OutputTableResults.resx b/Library15Gerimovich/OutputTableResults.resx new file mode 100644 index 0000000..f298a7b --- /dev/null +++ b/Library15Gerimovich/OutputTableResults.resx @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Library15Gerimovich/UserControl1.Designer.cs b/Library15Gerimovich/UserControl1.Designer.cs new file mode 100644 index 0000000..81abb49 --- /dev/null +++ b/Library15Gerimovich/UserControl1.Designer.cs @@ -0,0 +1,81 @@ +namespace Library15Gerimovich +{ + partial class UserControl1 + { + /// + /// Обязательная переменная конструктора. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Освободить все используемые ресурсы. + /// + /// истинно, если управляемый ресурс должен быть удален; иначе ложно. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Код, автоматически созданный конструктором компонентов + + /// + /// Требуемый метод для поддержки конструктора — не изменяйте + /// содержимое этого метода с помощью редактора кода. + /// + private void InitializeComponent() + { + this.buttonLoad = new System.Windows.Forms.Button(); + this.panel1 = new System.Windows.Forms.Panel(); + this.pictureBoxAvatar = new System.Windows.Forms.PictureBox(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBoxAvatar)).BeginInit(); + this.SuspendLayout(); + // + // buttonLoad + // + this.buttonLoad.Location = new System.Drawing.Point(38, 118); + this.buttonLoad.Name = "buttonLoad"; + this.buttonLoad.Size = new System.Drawing.Size(75, 23); + this.buttonLoad.TabIndex = 0; + this.buttonLoad.Text = "Загрузить"; + this.buttonLoad.UseVisualStyleBackColor = true; + // + // panel1 + // + this.panel1.Location = new System.Drawing.Point(3, 3); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(87, 49); + this.panel1.TabIndex = 1; + // + // pictureBoxAvatar + // + this.pictureBoxAvatar.Location = new System.Drawing.Point(38, 58); + this.pictureBoxAvatar.Name = "pictureBoxAvatar"; + this.pictureBoxAvatar.Size = new System.Drawing.Size(100, 50); + this.pictureBoxAvatar.TabIndex = 2; + this.pictureBoxAvatar.TabStop = false; + // + // UserControl1 + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.pictureBoxAvatar); + this.Controls.Add(this.panel1); + this.Controls.Add(this.buttonLoad); + this.Name = "UserControl1"; + this.Size = new System.Drawing.Size(150, 144); + ((System.ComponentModel.ISupportInitialize)(this.pictureBoxAvatar)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private Button buttonLoad; + private Panel panel1; + private PictureBox pictureBoxAvatar; + } +} diff --git a/Library15Gerimovich/UserControl1.cs b/Library15Gerimovich/UserControl1.cs new file mode 100644 index 0000000..aa043c7 --- /dev/null +++ b/Library15Gerimovich/UserControl1.cs @@ -0,0 +1,63 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Library15Gerimovich +{ + public partial class UserControl1 : UserControl + { + private event EventHandler? _avatarChanged; + private event Action? _errorOccured; + public string Error { get; private set; } + public Image Avatar + { + get + { + return pictureBoxAvatar.Image; + } + set + { + pictureBoxAvatar.Image = value; + } + } + public event EventHandler AvatarChanged + { + add { _avatarChanged += value; } + remove { _avatarChanged -= value; } + } + public event Action AnErrorOccurred + { + add { _errorOccured += value; } + remove { _errorOccured -= value; } + } + public UserControl1() + { + InitializeComponent(); + Error = string.Empty; + } + private void ButtonLoad_Click(object sender, EventArgs e) + { + var ofd = new OpenFileDialog(); + if (ofd.ShowDialog() == DialogResult.OK) + { + try + { + pictureBoxAvatar.Image = + Image.FromFile(ofd.FileName); + _avatarChanged?.Invoke(this, e); + } + catch (Exception ex) + { + Error = ex.Message; + _errorOccured?.Invoke(); + } + } + } + } +} diff --git a/Library15Gerimovich/UserControl1.resx b/Library15Gerimovich/UserControl1.resx new file mode 100644 index 0000000..f298a7b --- /dev/null +++ b/Library15Gerimovich/UserControl1.resx @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/WinFormsAppTest/Form1.Designer.cs b/WinFormsAppTest/Form1.Designer.cs new file mode 100644 index 0000000..cc10594 --- /dev/null +++ b/WinFormsAppTest/Form1.Designer.cs @@ -0,0 +1,57 @@ +namespace WinFormsAppTest +{ + partial class Form1 + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.userControl11 = new Library15Gerimovich.UserControl1(); + this.SuspendLayout(); + // + // userControl11 + // + this.userControl11.Location = new System.Drawing.Point(54, 19); + this.userControl11.Name = "userControl11"; + this.userControl11.Size = new System.Drawing.Size(150, 144); + this.userControl11.TabIndex = 0; + // + // Form1 + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(800, 450); + this.Controls.Add(this.userControl11); + this.Name = "Form1"; + this.Text = "Form1"; + this.ResumeLayout(false); + + } + + #endregion + + private Library15Gerimovich.UserControl1 userControl11; + } +} \ No newline at end of file diff --git a/WinFormsAppTest/Form1.cs b/WinFormsAppTest/Form1.cs new file mode 100644 index 0000000..9d551ec --- /dev/null +++ b/WinFormsAppTest/Form1.cs @@ -0,0 +1,25 @@ +namespace WinFormsAppTest +{ + public partial class Form1 : Form + { + public Form1() + { + InitializeComponent(); + } + + private void CreateImage() + { + Bitmap bmp = new(userControl11.Width - 10, + userControl11.Height - 10); + Graphics gr = Graphics.FromImage(bmp); + gr.DrawEllipse(new Pen(Color.Red), 10, 10, 20, 20); + userControl11.Avatar = bmp; + } + private void userControl11_AvatarChanged(object sender, EventArgs e) + { + var width = userControl11.Avatar.Width; + MessageBox.Show($"Change avatar, width={width}"); + } + + } +} \ No newline at end of file diff --git a/WinFormsAppTest/Form1.resx b/WinFormsAppTest/Form1.resx new file mode 100644 index 0000000..f298a7b --- /dev/null +++ b/WinFormsAppTest/Form1.resx @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/WinFormsAppTest/Program.cs b/WinFormsAppTest/Program.cs new file mode 100644 index 0000000..6db5a46 --- /dev/null +++ b/WinFormsAppTest/Program.cs @@ -0,0 +1,17 @@ +namespace WinFormsAppTest +{ + internal static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main() + { + // To customize application configuration such as set high DPI settings or default font, + // see https://aka.ms/applicationconfiguration. + ApplicationConfiguration.Initialize(); + Application.Run(new Form1()); + } + } +} \ No newline at end of file diff --git a/WinFormsAppTest/WinFormsAppTest.csproj b/WinFormsAppTest/WinFormsAppTest.csproj new file mode 100644 index 0000000..c264237 --- /dev/null +++ b/WinFormsAppTest/WinFormsAppTest.csproj @@ -0,0 +1,15 @@ + + + + WinExe + net6.0-windows + enable + true + enable + + + + + + + \ No newline at end of file diff --git a/WindowsFormsTest/App.config b/WindowsFormsTest/App.config new file mode 100644 index 0000000..193aecc --- /dev/null +++ b/WindowsFormsTest/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/WindowsFormsTest/Form1.Designer.cs b/WindowsFormsTest/Form1.Designer.cs new file mode 100644 index 0000000..4a4be6e --- /dev/null +++ b/WindowsFormsTest/Form1.Designer.cs @@ -0,0 +1,40 @@ +namespace WindowsFormsTest +{ + partial class Form1 + { + /// + /// Обязательная переменная конструктора. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Освободить все используемые ресурсы. + /// + /// истинно, если управляемый ресурс должен быть удален; иначе ложно. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Код, автоматически созданный конструктором форм Windows + + /// + /// Требуемый метод для поддержки конструктора — не изменяйте + /// содержимое этого метода с помощью редактора кода. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(800, 450); + this.Text = "Form1"; + } + + #endregion + } +} + diff --git a/WindowsFormsTest/Form1.cs b/WindowsFormsTest/Form1.cs new file mode 100644 index 0000000..15cf409 --- /dev/null +++ b/WindowsFormsTest/Form1.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace WindowsFormsTest +{ + public partial class Form1 : Form + { + public Form1() + { + InitializeComponent(); + } + } +} diff --git a/WindowsFormsTest/Program.cs b/WindowsFormsTest/Program.cs new file mode 100644 index 0000000..2ee17d4 --- /dev/null +++ b/WindowsFormsTest/Program.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace WindowsFormsTest +{ + internal static class Program + { + /// + /// Главная точка входа для приложения. + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new Form1()); + } + } +} diff --git a/WindowsFormsTest/Properties/AssemblyInfo.cs b/WindowsFormsTest/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..78840ba --- /dev/null +++ b/WindowsFormsTest/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов для изменения сведений, +// связанных со сборкой. +[assembly: AssemblyTitle("WindowsFormsTest")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("WindowsFormsTest")] +[assembly: AssemblyCopyright("Copyright © 2024")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, следует установить атрибут ComVisible в TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("fa527d70-da4c-4a9d-9e06-25334526a68c")] + +// Сведения о версии сборки состоят из указанных ниже четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номера сборки и редакции по умолчанию +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/WindowsFormsTest/Properties/Resources.Designer.cs b/WindowsFormsTest/Properties/Resources.Designer.cs new file mode 100644 index 0000000..471c8b4 --- /dev/null +++ b/WindowsFormsTest/Properties/Resources.Designer.cs @@ -0,0 +1,71 @@ +//------------------------------------------------------------------------------ +// +// Этот код создан программным средством. +// Версия среды выполнения: 4.0.30319.42000 +// +// Изменения в этом файле могут привести к неправильному поведению и будут утрачены, если +// код создан повторно. +// +//------------------------------------------------------------------------------ + +namespace WindowsFormsTest.Properties +{ + + + /// + /// Класс ресурсов со строгим типом для поиска локализованных строк и пр. + /// + // Этот класс был автоматически создан при помощи StronglyTypedResourceBuilder + // класс с помощью таких средств, как ResGen или Visual Studio. + // Для добавления или удаления члена измените файл .ResX, а затем перезапустите ResGen + // с параметром /str или заново постройте свой VS-проект. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + 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() + { + } + + /// + /// Возврат кэшированного экземпляра ResourceManager, используемого этим классом. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if ((resourceMan == null)) + { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("WindowsFormsTest.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Переопределяет свойство CurrentUICulture текущего потока для всех + /// подстановки ресурсов с помощью этого класса ресурсов со строгим типом. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/WindowsFormsTest/Properties/Resources.resx b/WindowsFormsTest/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/WindowsFormsTest/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/WindowsFormsTest/Properties/Settings.Designer.cs b/WindowsFormsTest/Properties/Settings.Designer.cs new file mode 100644 index 0000000..1f8c51e --- /dev/null +++ b/WindowsFormsTest/Properties/Settings.Designer.cs @@ -0,0 +1,30 @@ +//------------------------------------------------------------------------------ +// +// 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. +// +//------------------------------------------------------------------------------ + +namespace WindowsFormsTest.Properties +{ + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase + { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/WindowsFormsTest/Properties/Settings.settings b/WindowsFormsTest/Properties/Settings.settings new file mode 100644 index 0000000..3964565 --- /dev/null +++ b/WindowsFormsTest/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/WindowsFormsTest/WindowsFormsTest.csproj b/WindowsFormsTest/WindowsFormsTest.csproj new file mode 100644 index 0000000..56dec3f --- /dev/null +++ b/WindowsFormsTest/WindowsFormsTest.csproj @@ -0,0 +1,80 @@ + + + + + Debug + AnyCPU + {FA527D70-DA4C-4A9D-9E06-25334526A68C} + WinExe + WindowsFormsTest + WindowsFormsTest + v4.8 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + Form + + + Form1.cs + + + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + + + \ No newline at end of file