diff --git a/AbazovApp/AbazovApp.sln b/AbazovApp/AbazovApp.sln index 46da842..7b91f4c 100644 --- a/AbazovApp/AbazovApp.sln +++ b/AbazovApp/AbazovApp.sln @@ -5,6 +5,8 @@ VisualStudioVersion = 17.3.32825.248 MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AbazovAppView", "AbazovAppView\AbazovAppView.csproj", "{D7EF43DC-2F09-4EAD-8161-6D4A08BC7786}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AbazovViewComponents", "AbazovViewComponents\AbazovViewComponents.csproj", "{070AAA71-3C9B-4E19-A89D-83372C630C6E}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -15,6 +17,10 @@ Global {D7EF43DC-2F09-4EAD-8161-6D4A08BC7786}.Debug|Any CPU.Build.0 = Debug|Any CPU {D7EF43DC-2F09-4EAD-8161-6D4A08BC7786}.Release|Any CPU.ActiveCfg = Release|Any CPU {D7EF43DC-2F09-4EAD-8161-6D4A08BC7786}.Release|Any CPU.Build.0 = Release|Any CPU + {070AAA71-3C9B-4E19-A89D-83372C630C6E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {070AAA71-3C9B-4E19-A89D-83372C630C6E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {070AAA71-3C9B-4E19-A89D-83372C630C6E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {070AAA71-3C9B-4E19-A89D-83372C630C6E}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/AbazovApp/AbazovAppView/AbazovAppView.csproj b/AbazovApp/AbazovAppView/AbazovAppView.csproj index b57c89e..98fad8c 100644 --- a/AbazovApp/AbazovAppView/AbazovAppView.csproj +++ b/AbazovApp/AbazovAppView/AbazovAppView.csproj @@ -8,4 +8,8 @@ enable + + + + \ No newline at end of file diff --git a/AbazovApp/AbazovAppView/Form1.Designer.cs b/AbazovApp/AbazovAppView/Form1.Designer.cs deleted file mode 100644 index 4530f52..0000000 --- a/AbazovApp/AbazovAppView/Form1.Designer.cs +++ /dev/null @@ -1,39 +0,0 @@ -namespace AbazovAppView -{ - 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.components = new System.ComponentModel.Container(); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(800, 450); - this.Text = "Form1"; - } - - #endregion - } -} \ No newline at end of file diff --git a/AbazovApp/AbazovAppView/Form1.cs b/AbazovApp/AbazovAppView/Form1.cs deleted file mode 100644 index d15553b..0000000 --- a/AbazovApp/AbazovAppView/Form1.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace AbazovAppView -{ - public partial class Form1 : Form - { - public Form1() - { - InitializeComponent(); - } - } -} \ No newline at end of file diff --git a/AbazovApp/AbazovAppView/Form1.resx b/AbazovApp/AbazovAppView/Form1.resx deleted file mode 100644 index 1af7de1..0000000 --- a/AbazovApp/AbazovAppView/Form1.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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/AbazovApp/AbazovAppView/FormTest.Designer.cs b/AbazovApp/AbazovAppView/FormTest.Designer.cs new file mode 100644 index 0000000..8e9bb26 --- /dev/null +++ b/AbazovApp/AbazovAppView/FormTest.Designer.cs @@ -0,0 +1,98 @@ +namespace AbazovAppView +{ + partial class FormTest + { + /// + /// 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.abazovCheckedListBox = new AbazovViewComponents.Components.AbazovCheckedListBox(); + this.buttonAdd = new System.Windows.Forms.Button(); + this.buttonClear = new System.Windows.Forms.Button(); + this.buttonSelected = new System.Windows.Forms.Button(); + this.SuspendLayout(); + // + // abazovCheckedListBox + // + this.abazovCheckedListBox.Location = new System.Drawing.Point(12, 12); + this.abazovCheckedListBox.Name = "abazovCheckedListBox"; + this.abazovCheckedListBox.selectedItem = null; + this.abazovCheckedListBox.Size = new System.Drawing.Size(170, 134); + this.abazovCheckedListBox.TabIndex = 0; + this.abazovCheckedListBox.SelectedItemChange += new System.Action(this.abazovCheckedListBox_SelectedItemChange); + // + // buttonAdd + // + this.buttonAdd.Location = new System.Drawing.Point(12, 143); + this.buttonAdd.Name = "buttonAdd"; + this.buttonAdd.Size = new System.Drawing.Size(150, 29); + this.buttonAdd.TabIndex = 1; + this.buttonAdd.Text = "Добавить"; + this.buttonAdd.UseVisualStyleBackColor = true; + this.buttonAdd.Click += new System.EventHandler(this.buttonAdd_Click); + // + // buttonClear + // + this.buttonClear.Location = new System.Drawing.Point(12, 178); + this.buttonClear.Name = "buttonClear"; + this.buttonClear.Size = new System.Drawing.Size(150, 29); + this.buttonClear.TabIndex = 2; + this.buttonClear.Text = "Очистить"; + this.buttonClear.UseVisualStyleBackColor = true; + this.buttonClear.Click += new System.EventHandler(this.buttonClear_Click); + // + // buttonSelected + // + this.buttonSelected.Location = new System.Drawing.Point(12, 213); + this.buttonSelected.Name = "buttonSelected"; + this.buttonSelected.Size = new System.Drawing.Size(150, 48); + this.buttonSelected.TabIndex = 3; + this.buttonSelected.Text = "Выбранный элемент"; + this.buttonSelected.UseVisualStyleBackColor = true; + this.buttonSelected.Click += new System.EventHandler(this.buttonSelected_Click); + // + // FormTest + // + this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 20F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(800, 450); + this.Controls.Add(this.buttonSelected); + this.Controls.Add(this.buttonClear); + this.Controls.Add(this.buttonAdd); + this.Controls.Add(this.abazovCheckedListBox); + this.Name = "FormTest"; + this.Text = "FormTest"; + this.ResumeLayout(false); + + } + + #endregion + + private AbazovViewComponents.Components.AbazovCheckedListBox abazovCheckedListBox; + private Button buttonAdd; + private Button buttonClear; + private Button buttonSelected; + } +} \ No newline at end of file diff --git a/AbazovApp/AbazovAppView/FormTest.cs b/AbazovApp/AbazovAppView/FormTest.cs new file mode 100644 index 0000000..675d651 --- /dev/null +++ b/AbazovApp/AbazovAppView/FormTest.cs @@ -0,0 +1,48 @@ +using AbazovViewComponents.Components; +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 AbazovAppView +{ + public partial class FormTest : Form + { + public FormTest() + { + InitializeComponent(); + } + + private void buttonAdd_Click(object sender, EventArgs e) + { + Random random = new Random(); + List items = new List(); + for (int i = 0; i < 3; i++) + { + items.Add("item" + random.Next(0, 10000)); + } + abazovCheckedListBox.addItems(items); + abazovCheckedListBox.selectedItem = items[1]; + } + + private void abazovCheckedListBox_SelectedItemChange(string obj) + { + MessageBox.Show(obj, "Select event"); + } + + private void buttonClear_Click(object sender, EventArgs e) + { + abazovCheckedListBox.clear(); + } + + private void buttonSelected_Click(object sender, EventArgs e) + { + MessageBox.Show(abazovCheckedListBox.selectedItem ?? "null", "By getter"); + } + } +} diff --git a/AbazovApp/AbazovAppView/FormTest.resx b/AbazovApp/AbazovAppView/FormTest.resx new file mode 100644 index 0000000..f298a7b --- /dev/null +++ b/AbazovApp/AbazovAppView/FormTest.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/AbazovApp/AbazovAppView/Program.cs b/AbazovApp/AbazovAppView/Program.cs index 57ced9d..ff97f85 100644 --- a/AbazovApp/AbazovAppView/Program.cs +++ b/AbazovApp/AbazovAppView/Program.cs @@ -11,7 +11,7 @@ namespace AbazovAppView // To customize application configuration such as set high DPI settings or default font, // see https://aka.ms/applicationconfiguration. ApplicationConfiguration.Initialize(); - Application.Run(new Form1()); + Application.Run(new FormTest()); } } } \ No newline at end of file diff --git a/AbazovApp/AbazovViewComponents/AbazovViewComponents.csproj b/AbazovApp/AbazovViewComponents/AbazovViewComponents.csproj new file mode 100644 index 0000000..060aa1c --- /dev/null +++ b/AbazovApp/AbazovViewComponents/AbazovViewComponents.csproj @@ -0,0 +1,10 @@ + + + + net6.0-windows + enable + true + enable + + + diff --git a/AbazovApp/AbazovViewComponents/Components/AbazovCheckedListBox.Designer.cs b/AbazovApp/AbazovViewComponents/Components/AbazovCheckedListBox.Designer.cs new file mode 100644 index 0000000..df6ff98 --- /dev/null +++ b/AbazovApp/AbazovViewComponents/Components/AbazovCheckedListBox.Designer.cs @@ -0,0 +1,58 @@ +namespace AbazovViewComponents.Components +{ + partial class AbazovCheckedListBox + { + /// + /// Обязательная переменная конструктора. + /// + 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.checkedListBox = new System.Windows.Forms.CheckedListBox(); + this.SuspendLayout(); + // + // checkedListBox + // + this.checkedListBox.FormattingEnabled = true; + this.checkedListBox.Location = new System.Drawing.Point(0, 0); + this.checkedListBox.Name = "checkedListBox"; + this.checkedListBox.Size = new System.Drawing.Size(150, 114); + this.checkedListBox.TabIndex = 0; + this.checkedListBox.SelectedIndexChanged += new System.EventHandler(this.checkedListBox_SelectedIndexChanged); + // + // AbazovCheckedListBox + // + this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 20F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.checkedListBox); + this.Name = "AbazovCheckedListBox"; + this.Size = new System.Drawing.Size(150, 115); + this.ResumeLayout(false); + + } + + #endregion + + private CheckedListBox checkedListBox; + } +} diff --git a/AbazovApp/AbazovViewComponents/Components/AbazovCheckedListBox.cs b/AbazovApp/AbazovViewComponents/Components/AbazovCheckedListBox.cs new file mode 100644 index 0000000..f9c9a17 --- /dev/null +++ b/AbazovApp/AbazovViewComponents/Components/AbazovCheckedListBox.cs @@ -0,0 +1,52 @@ +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 AbazovViewComponents.Components +{ + public partial class AbazovCheckedListBox : UserControl + { + public AbazovCheckedListBox() + { + InitializeComponent(); + } + + public string? selectedItem + { + get + { + return checkedListBox.SelectedItem is null ? null : checkedListBox.SelectedItem.ToString(); + } + set + { + checkedListBox.SelectedItem = value; + } + } + + public event Action SelectedItemChange; + + public void addItems(List items) + { + foreach (string item in items) + { + checkedListBox.Items.Add(item); + } + } + + public void clear() + { + checkedListBox.Items.Clear(); + } + + private void checkedListBox_SelectedIndexChanged(object sender, EventArgs e) + { + SelectedItemChange.Invoke(checkedListBox.SelectedItem.ToString()); + } + } +} diff --git a/AbazovApp/AbazovViewComponents/Components/AbazovCheckedListBox.resx b/AbazovApp/AbazovViewComponents/Components/AbazovCheckedListBox.resx new file mode 100644 index 0000000..f298a7b --- /dev/null +++ b/AbazovApp/AbazovViewComponents/Components/AbazovCheckedListBox.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