From 14150dfe1286ea6304ac8ce5366edb1687ca2e05 Mon Sep 17 00:00:00 2001 From: bumju08 Date: Sat, 11 Mar 2023 14:18:02 +0900 Subject: [PATCH] Fix ProcessList-Selection Error --- Forms/MainForm.Designer.cs | 2 +- Forms/ProcessListForm.Designer.cs | 2 +- Forms/ProcessListForm.cs | 24 ++++++++++++++++++------ Properties/AssemblyInfo.cs | 4 ++-- 4 files changed, 22 insertions(+), 10 deletions(-) diff --git a/Forms/MainForm.Designer.cs b/Forms/MainForm.Designer.cs index a57a639..3aa5c17 100644 --- a/Forms/MainForm.Designer.cs +++ b/Forms/MainForm.Designer.cs @@ -1535,7 +1535,7 @@ private void InitializeComponent() this.MinimumSize = new System.Drawing.Size(322, 250); this.Name = "MainForm"; this.Opacity = 0.9D; - this.Text = "EasyHCI 1.0.8C"; + this.Text = "EasyHCI 1.0.8D"; this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.MainForm_FormClosing); this.Load += new System.EventHandler(this.MainForm_Load); this.Resize += new System.EventHandler(this.MainForm_Resize); diff --git a/Forms/ProcessListForm.Designer.cs b/Forms/ProcessListForm.Designer.cs index 96b0742..20419ae 100644 --- a/Forms/ProcessListForm.Designer.cs +++ b/Forms/ProcessListForm.Designer.cs @@ -53,7 +53,7 @@ private void InitializeComponent() this.list.TabIndex = 60; this.list.UseCompatibleStateImageBehavior = false; this.list.View = System.Windows.Forms.View.Details; - this.list.Click += new System.EventHandler(this.list_Click); + this.list.MouseClick += new System.Windows.Forms.MouseEventHandler(this.list_MouseClick); // // Column1 // diff --git a/Forms/ProcessListForm.cs b/Forms/ProcessListForm.cs index f8e39f1..521551f 100644 --- a/Forms/ProcessListForm.cs +++ b/Forms/ProcessListForm.cs @@ -235,16 +235,28 @@ private void ProcessListForm_Resize(object sender, EventArgs e) addToExceptions.Size = new Size(this.Width - 24, 48); } - private void list_Click(object sender, EventArgs e) + private void list_MouseClick(object sender, MouseEventArgs e) { - - ListView.SelectedIndexCollection selects = list.SelectedIndices; - - list.Items[selects[selects.Count - 1]].Checked = !list.Items[selects[selects.Count - 1]].Checked; - } + ListViewItem targetItem = list.GetItemAt(e.X, e.Y); + ListView.SelectedIndexCollection selectedIndices = list.SelectedIndices; + if (selectedIndices.Count == 0) + { + targetItem.Selected = true; + } + else + { + ListViewItem selectedItem = list.Items[selectedIndices[0]]; + if (targetItem != selectedItem) + { + targetItem.Selected = true; + } + } + if (e.X > 19) + targetItem.Checked = targetItem.Selected; + } private List added_items = new List(); private List removed_items = new List(); diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs index 362f39b..81ed13d 100644 --- a/Properties/AssemblyInfo.cs +++ b/Properties/AssemblyInfo.cs @@ -32,5 +32,5 @@ // 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호가 자동으로 // 지정되도록 할 수 있습니다. // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.8.2")] -[assembly: AssemblyFileVersion("1.0.8.2")] +[assembly: AssemblyVersion("1.0.8.3")] +[assembly: AssemblyFileVersion("1.0.8.3")]