diff --git a/Reseter2/Form1.Designer.cs b/Reseter2/Form1.Designer.cs index f52db15..ef585ea 100644 --- a/Reseter2/Form1.Designer.cs +++ b/Reseter2/Form1.Designer.cs @@ -195,6 +195,7 @@ this.flowLayoutPanel1.Size = new System.Drawing.Size(396, 657); this.flowLayoutPanel1.TabIndex = 0; this.flowLayoutPanel1.WrapContents = false; + this.flowLayoutPanel1.MouseClick += new System.Windows.Forms.MouseEventHandler(this.tabControl1_MouseClick); // // tabPage2 // @@ -376,6 +377,7 @@ this.tabPage4.TabIndex = 3; this.tabPage4.Text = "Настройки"; this.tabPage4.UseVisualStyleBackColor = true; + this.tabPage4.MouseClick += new System.Windows.Forms.MouseEventHandler(this.tabControl1_MouseClick); // // button4 // @@ -398,6 +400,7 @@ this.tabPage5.TabIndex = 4; this.tabPage5.Text = "О программе"; this.tabPage5.UseVisualStyleBackColor = true; + this.tabPage5.MouseClick += new System.Windows.Forms.MouseEventHandler(this.tabControl1_MouseClick); // // pictureBox1 // @@ -437,9 +440,11 @@ this.tb_comp.Name = "tb_comp"; this.tb_comp.Size = new System.Drawing.Size(210, 20); this.tb_comp.TabIndex = 5; + this.tb_comp.MouseClick += new System.Windows.Forms.MouseEventHandler(this.tb_comp_MouseClick); this.tb_comp.TextChanged += new System.EventHandler(this.cb_comp_TextUpdate); this.tb_comp.Enter += new System.EventHandler(this.tb_comp_Enter); this.tb_comp.Leave += new System.EventHandler(this.tb_comp_Leave); + this.tb_comp.MouseCaptureChanged += new System.EventHandler(this.control_MouseCaptureChanged); // // checkControl1 // diff --git a/Reseter2/Form1.cs b/Reseter2/Form1.cs index 5c6e799..192ba6f 100644 --- a/Reseter2/Form1.cs +++ b/Reseter2/Form1.cs @@ -22,7 +22,6 @@ namespace Reseter2 { //private FormHistory formHistory; //System.Windows.Forms.CheckBox - private System.Windows.Forms.ListBox listBox; private bool unSave; private bool FocusContext; private object selectItem; @@ -30,7 +29,8 @@ namespace Reseter2 public event saveSetting Save; public delegate void updateSetting(); public event updateSetting UpdateSetting; - + private ListBox ListComp; + private bool listFocus; public Form1() { @@ -38,15 +38,15 @@ namespace Reseter2 //FileStream file = new FileStream("res.dat", FileMode.OpenOrCreate); //try //{ - + //HistoryList.Hitem = (List)binaryFormatter.Deserialize(file); //file.Close(); //file.Dispose(); - + //} //catch //{ - + // file.Close(); // file.Dispose(); // MessageBox.Show("Ошибка чтения конфигурационных файлов.\n Перезапустите программу.", "Критическая ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); @@ -55,24 +55,21 @@ namespace Reseter2 SGlobalSetting.LoadSetting(); - - WordsList.MainCategory = SGlobalSetting.LoadWords(); - this.listBox = new ListBox(); - this.Controls.Add(listBox); - - // this.listBox. + WordsList.MainCategory = SGlobalSetting.LoadWords(); + ListComp = new ListBox(); + this.Controls.Add(ListComp); + ListComp.LostFocus += tb_comp_Leave; + ListComp.GotFocus += tb_comp_Enter; + + + + // ListComp.Enter += tb_comp_Enter; + // ListComp.MouseClick += tb_comp_MouseClick; + + InitializeComponent(); - - this.listBox.Location = new Point(tb_comp.Location.X, tb_comp.Location.Y+ tb_comp.Height); - this.listBox.Width = tb_comp.Width; - this.listBox.Height = tb_comp.Height*5; - this.listBox.Items.Add("Введите строку"); - this.listBox.Leave += tb_comp_Leave; - this.listBox.Enter += tb_comp_Enter; - this.listBox.Visible = false; - this.Save += settingWordsControl1.Save; this.Save += settingSCCMControl1.Save; this.Save += settingRebootControl1.Save; @@ -81,12 +78,19 @@ namespace Reseter2 this.UpdateSetting += settingSCCMControl1.UpdateSetting; this.UpdateSetting += settingRebootControl1.UpdateSetting; this.settingWordsControl1.UpdateTree = UpdateTree; - // cb_comp.DropDownStyle = ComboBoxStyle.DropDown; + + + + ListComp.Location = new Point(tb_comp.Location.X, tb_comp.Location.Y + tb_comp.Height); + ListComp.Width = tb_comp.Width; + ListComp.Visible = false; + + //tb_comp.Controls.Add(ListComp); checkControl1.updateCheck += CheckControl1_updateCheck; - flowLayoutPanel1.AutoScrollMinSize = new Size(0, 658) ; - flowLayoutPanel1.VerticalScroll.Visible = true; + flowLayoutPanel1.AutoScrollMinSize = new Size(0, 658); + flowLayoutPanel1.VerticalScroll.Visible = true; Reseter.SetForm(flowLayoutPanel1, this); HistoryList.Update += Update_lb; lb_history.DataSource = HistoryList.Hitem; @@ -100,7 +104,7 @@ namespace Reseter2 tabControl1.SelectedIndex = 1; } - + public void UpdateTree() { @@ -130,8 +134,8 @@ namespace Reseter2 { int Act; int Cls; - Reseter.Tick(out Act,out Cls) ; - if (Act>0) + Reseter.Tick(out Act, out Cls); + if (Act > 0) { ss_activ.Text = "Активно:" + Act; } @@ -163,11 +167,11 @@ namespace Reseter2 lb_history.DisplayMember = "ToStr"; } - + private void sm_RebootItem_Click(object sender, EventArgs e) { - if(selectItem is HistoryItem historyItem) + if (selectItem is HistoryItem historyItem) { Reseter.AddTask(historyItem.GetComp()); tabControl1.SelectedIndex = 0; @@ -176,17 +180,17 @@ namespace Reseter2 private void lb_history_MouseMove(object sender, MouseEventArgs e) { - lb_history.SelectedIndex = lb_history.IndexFromPoint(e.Location); + lb_history.SelectedIndex = lb_history.IndexFromPoint(e.Location); } private void lb_history_MouseLeave(object sender, EventArgs e) { - if(!FocusContext) + if (!FocusContext) { lb_history.SelectedIndex = -1; } - + } private void cm_history_Opening(object sender, CancelEventArgs e) @@ -197,13 +201,13 @@ namespace Reseter2 private void lb_history_MouseDown(object sender, MouseEventArgs e) { - - // lb_history.SelectedIndex = lb_history.IndexFromPoint(e.Location); + + // lb_history.SelectedIndex = lb_history.IndexFromPoint(e.Location); } private void cm_history_Closed(object sender, ToolStripDropDownClosedEventArgs e) { - // selectItem = null; + // selectItem = null; FocusContext = false; } @@ -213,7 +217,7 @@ namespace Reseter2 bilderWords.ShowDialog(); } - + private void Form1_Load(object sender, EventArgs e) { @@ -229,11 +233,11 @@ namespace Reseter2 private void treeView1_AfterCheck(object sender, TreeViewEventArgs e) { - + // treeView1_treeViewChangeCheckBox(e.Node); } - + private void treeView1_treeViewChangeCheckBox(TreeNode treeNode) { for (int i = 0; i < treeNode.Nodes.Count; i++) @@ -255,7 +259,7 @@ namespace Reseter2 { if (treeNode.Nodes.Count == 0) { - if(treeNode.Checked) + if (treeNode.Checked) { return 1; } @@ -270,20 +274,20 @@ namespace Reseter2 int nodeCheked = 0; for (int i = 0; i < treeNode.Nodes.Count; i++) { - if(treeView1_treeViewChangeRootCheckBox(treeNode.Nodes[i]) == 2) nedoCheked = true; + if (treeView1_treeViewChangeRootCheckBox(treeNode.Nodes[i]) == 2) nedoCheked = true; if (treeNode.Nodes[i].StateImageIndex == 1) nodeCheked++; //treeNo - + } int Cheked = 0; - + if (treeNode.Nodes.Count == nodeCheked) { Cheked = 1; treeNode.Checked = true; treeNode.StateImageIndex = 1; } - else if(nodeCheked == 0) + else if (nodeCheked == 0) { Cheked = 0; treeNode.Checked = false; @@ -296,37 +300,37 @@ namespace Reseter2 Cheked = 2; } - + return Cheked; - - } + + } } private void treeView1_ChangePrentRootCheckBox(TreeNode treeNode) { - + if (treeNode.Parent != null) - { - //treeView1_treeViewChangeRootCheckBox(treeNode.Parent); - treeView1_ChangePrentRootCheckBox(treeNode.Parent); + { + //treeView1_treeViewChangeRootCheckBox(treeNode.Parent); + treeView1_ChangePrentRootCheckBox(treeNode.Parent); } } private void treeView1_DoubleClick(object sender, EventArgs e) { - + } private void treeView1_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e) { - + if (e.Button == MouseButtons.Left && e.Node.Tag is WordsComp) { WordsComp wordsComp = (WordsComp)e.Node.Tag; - - DialogResult result = MessageBox.Show("Перезагрузить ПК: " + wordsComp.NameNode(),"Создание новой задачи", MessageBoxButtons.YesNo, MessageBoxIcon.Warning); - if(result == DialogResult.Yes) + + DialogResult result = MessageBox.Show("Перезагрузить ПК: " + wordsComp.NameNode(), "Создание новой задачи", MessageBoxButtons.YesNo, MessageBoxIcon.Warning); + if (result == DialogResult.Yes) { Reseter.AddTask(wordsComp.GetComp()); tabControl1.SelectedIndex = 0; @@ -336,7 +340,7 @@ namespace Reseter2 private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e) { - + TreeView tree = (TreeView)sender; Rectangle BoundsNode = new(e.Node.Bounds.X - 43, e.Node.Bounds.Y, e.Node.Bounds.Width + 43, e.Node.Bounds.Height); @@ -351,10 +355,10 @@ namespace Reseter2 { tree.SelectedNode = null; } - + } //tree.BeginUpdate(); - Rectangle BoundsIcon = new(e.Node.Bounds.X -43, e.Node.Bounds.Y + 2, 17, 18); + Rectangle BoundsIcon = new(e.Node.Bounds.X - 43, e.Node.Bounds.Y + 2, 17, 18); if (e.Button == MouseButtons.Left && BoundsIcon.Contains(e.Location)) { e.Node.Checked = !e.Node.Checked; @@ -365,19 +369,19 @@ namespace Reseter2 else { e.Node.StateImageIndex = 0; - } + } treeView1_treeViewChangeCheckBox(e.Node); treeView1_ChangePrentRootCheckBox(e.Node); CheckControl1_interdmet(); } - - - // for (int i = 0; i < tree.Nodes.Count; i++) - // { - // treeView1_treeViewChangeRootCheckBox(tree.Nodes[i]); - // } - + + + // for (int i = 0; i < tree.Nodes.Count; i++) + // { + // treeView1_treeViewChangeRootCheckBox(tree.Nodes[i]); + // } + } @@ -389,7 +393,7 @@ namespace Reseter2 //TreeView tree = (TreeView)sender; //treeView1_treeViewChangeCheckBox(tree.Nodes[0]); - + } private List treeViewCheckOn(TreeNode node) @@ -415,14 +419,15 @@ namespace Reseter2 { comps.AddRange(treeViewCheckOn(treeView1.Nodes[i])); } - if(comps.Count == 0) + if (comps.Count == 0) { MessageBox.Show("Не выбранно ни одного ПК"); return; } DialogResult result = MessageBox.Show("Будет перезагруженно " + comps.Count() + " компьютеров.\nПродолжить?", "Запуск многопоточной перезагрузки.", MessageBoxButtons.YesNo, MessageBoxIcon.Warning); - if (result == DialogResult.Yes) { + if (result == DialogResult.Yes) + { Reseter.AddTask(comps); checkControl1.set_state(false); CheckControl1_updateCheck(false); @@ -455,24 +460,24 @@ namespace Reseter2 private void CheckControl1_interdmet() { int chek_inter = 0; - + int summ = 0; for (int i = 0; i < treeView1.Nodes.Count; i++) { int check = treeView1_treeViewChangeRootCheckBox(treeView1.Nodes[i]); - if (2 == check) chek_inter++; - if (1 == check) summ++; + if (2 == check) chek_inter++; + if (1 == check) summ++; } - - if(treeView1.Nodes.Count == summ ) + + if (treeView1.Nodes.Count == summ) { checkControl1.set_state(true); } - else if(0 == summ) + else if (0 == summ) { checkControl1.set_state(false); } - if ((summ < treeView1.Nodes.Count && summ > 0) || chek_inter > 0) + if ((summ < treeView1.Nodes.Count && summ > 0) || chek_inter > 0) { checkControl1.set_intedmet(); } @@ -503,15 +508,15 @@ namespace Reseter2 unSave = true; UpdateSetting(); } - + } else { - if(unSave && (settingRebootControl1.edited() || + if (unSave && (settingRebootControl1.edited() || settingSCCMControl1.edited() || settingWordsControl1.edited())) - { - DialogResult result = MessageBox.Show("Изменения не сохраненны. Продолжить?", "Изменения не сохраненны.", MessageBoxButtons.OKCancel, MessageBoxIcon.Question); + { + DialogResult result = MessageBox.Show("Изменения не сохраненны. Продолжить?", "Изменения не сохраненны.", MessageBoxButtons.OKCancel, MessageBoxIcon.Question); switch (result) { case DialogResult.Cancel: @@ -521,8 +526,8 @@ namespace Reseter2 unSave = false; break; } - } - + } + } } @@ -534,7 +539,7 @@ namespace Reseter2 private void WordsReboot_Click(object sender, EventArgs e) { - if(treeView1.SelectedNode.Tag is WordsComp) + if (treeView1.SelectedNode.Tag is WordsComp) { WordsComp wordsComp = (WordsComp)treeView1.SelectedNode.Tag; @@ -545,47 +550,84 @@ namespace Reseter2 tabControl1.SelectedIndex = 0; } } - + } private void cb_comp_TextUpdate(object sender, EventArgs e) { Cursor.Current = Cursors.Default; - if(sender is ComboBox) + if (sender is ComboBox) { ComboBox comboBox = (ComboBox)sender; SSeaher.seaherMetod.Change(cb_comp_ResultUpdate, comboBox.Text); } - + } public void cb_comp_ResultUpdate(List Items) { - //if (Items.Count > 0) + // if(cb_comp.Items.Count != Items.Count) cb_comp.DroppedDown = false; + // cb_comp.Items.Clear(); + // cb_comp.Items.AddRange(Items.ToArray()); + //// cb_comp.AutoCompleteCustomSource.Clear(); + //// cb_comp.AutoCompleteCustomSource.AddRange(Items.ToArray()); - //if(cb_comp.Items.Count != Items.Count) cb_comp.DroppedDown = false; - // cb_comp.Items.Clear(); - // cb_comp.Items.AddRange(Items.ToArray()); - //cb_comp.AutoCompleteCustomSource.Clear(); - //// cb_comp.AutoCompleteCustomSource.AddRange(Items.ToArray()); + // // cb_comp.AutoCompleteMode = AutoCompleteMode.None; + // cb_comp.SelectionStart = cb_comp.Text.Length; + // cb_comp.DroppedDown = true; - // // cb_comp.AutoCompleteMode = AutoCompleteMode.None; - // cb_comp.SelectionStart = cb_comp.Text.Length; - // cb_comp.DroppedDown = true; - // cb_comp.SelectedIndex = -1; - - } + // cb_comp.SelectedIndex = -1; - private void tb_comp_Leave(object sender, EventArgs e) - { - if(listBox.Focused || tb_comp.Focused) listBox.Visible = false; } private void tb_comp_Enter(object sender, EventArgs e) { - listBox.Visible = true; + ListComp.Visible = true; } - + private void tb_comp_MouseClick(object sender, MouseEventArgs e) + { + ListComp.Visible = true; + System.Console.WriteLine("click"); + } + + private void tb_comp_Leave(object sender, EventArgs e) + { + // System.Console.WriteLine("leav" + ListComp.Focused.ToString()); + // if (!listFocus) ListComp.Visible = false; + //listFocus = false; + + // if (!ListComp.Focused) ListComp.Visible = false; + } + + private void tabControl1_MouseClick(object sender, MouseEventArgs e) + { + //ListComp.foc + // ListComp.Visible = false; + } + + private void control_MouseCaptureChanged(object sender, EventArgs e) + { + Point clickPoint = ListComp.PointToClient(Cursor.Position); + if (!ListComp.Bounds.Contains(clickPoint)) + { + // System.Console.WriteLine("out"); + } + } + + protected override void WndProc(ref Message m) + { + if ((m.Msg == 0x210 && m.WParam.ToInt32() == 513) || m.Msg == 0x201) + { + Point clickPoint = this.PointToClient(Cursor.Position); + if (!ListComp.Bounds.Contains(clickPoint)) + { + ListComp.Visible = false; + } + System.Console.WriteLine("clickers"); + + } + base.WndProc(ref m); + } } } diff --git a/Reseter2/Form1.resx b/Reseter2/Form1.resx index c7ff951..6a82a06 100644 --- a/Reseter2/Form1.resx +++ b/Reseter2/Form1.resx @@ -131,7 +131,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACk - UQAAAk1TRnQBSQFMAgEBCQEAAZABBQGQAQUBGAEAARgBAAT/AREBAAj/AUIBTQE2BwABNgMAASgDAAFg + UQAAAk1TRnQBSQFMAgEBCQEAAZgBBgGYAQYBGAEAARgBAAT/AREBAAj/AUIBTQE2BwABNgMAASgDAAFg AwABSAMAAQEBAAEQBgABNhIAAf8BfwH/AX8B/wF/Af8BfwH/AX8B/wF/Af8BfwH/AX8B/wF/Af8BfwH/ AX8B/wF/Af8BfwH/AX8B/wF/Af8BfwH/AX8B/wF/Af8BfwH/AX8B/wF/Af8BfwH/AX8B/wF/kAAB/wF/ Af8BfwH/AX8B/wF/Af8BfwH/AX8B/wF/Af8BfwH/AX8B/wF/Af8BfwH/AX8B/wF/Af8BfwH/AX8B/wF/ @@ -490,7 +490,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABQ - CgAAAk1TRnQBSQFMAgEBAwEAATABBAEwAQQBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo + CgAAAk1TRnQBSQFMAgEBAwEAATgBBQE4AQUBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA