using Remontor.Connector; using Remontor.Seacher; 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 Remontor.Finder { internal partial class Finder : Form { private SessionItemControl SelectedItem; private bool StopRefreshSeacher = false; private int PreSelected = -1; public Finder() { InitializeComponent(); } private void ConnectBtn_Click(object sender, EventArgs e) { SConnector.NewConnect(new CompId(CompNameLB.Text)); this.Close(); } private void CompNameLB_TextChanged(object sender, EventArgs e) { if (sender is TextBox && !StopRefreshSeacher) { TextBox textBox = (TextBox)sender; SSeaher.seaherMetod.Change(cb_comp_ResultUpdate, textBox.Text); // CompSelected = null; // ListComp.Visible = true; } } public void cb_comp_ResultUpdate(List Items) { PreSelected = -1; SelectedItem = null; SeaherPanel.Controls.Clear(); int countItem = 0; foreach (ISeacherResult item in Items) { SessionItemControl itemControl = new SessionItemControl(item, UpdateActiv, countItem++); SeaherPanel.Controls.Add(itemControl); } } private void UpdateActiv(SessionItemControl sessionItem) { if(SelectedItem != null) SelectedItem.SelectActiv(null); if(PreSelected > -1)((SessionItemControl)SeaherPanel.Controls[PreSelected]).SelectPreActiv(null); SelectedItem = sessionItem; PreSelected = sessionItem.SelectActiv(sessionItem); StopRefreshSeacher = true; CompNameLB.Focus(); CompNameLB.Text = sessionItem.seacherResult.ResultString(); CompNameLB.Select(CompNameLB.Text.Length, 0); StopRefreshSeacher = false; } private void CompNameLB_KeyDown(object sender, KeyEventArgs e) { switch (e.KeyValue) { case 40: if (PreSelected < SeaherPanel.Controls.Count - 1) { SelectedItem = null; if (PreSelected > -1) ((SessionItemControl)SeaherPanel.Controls[PreSelected]).SelectPreActiv(null); ++PreSelected; SeaherPanel.ScrollControlIntoView(SeaherPanel.Controls[PreSelected]); ((SessionItemControl)SeaherPanel.Controls[PreSelected]).SelectPreActiv((SessionItemControl)SeaherPanel.Controls[PreSelected]); } e.SuppressKeyPress = true; break; case 38: if (PreSelected > 0) { SelectedItem = null; if (PreSelected > -1) ((SessionItemControl)SeaherPanel.Controls[PreSelected]).SelectPreActiv(null); --PreSelected; SeaherPanel.ScrollControlIntoView(SeaherPanel.Controls[PreSelected]); ((SessionItemControl)SeaherPanel.Controls[PreSelected]).SelectPreActiv((SessionItemControl)SeaherPanel.Controls[PreSelected]); } e.SuppressKeyPress = true; //ListComp.Refresh(); break; case 13: if ((SessionItemControl)SeaherPanel.Controls[PreSelected] == SelectedItem) { //bt_reset_Click(null, null); break; } if (PreSelected >= 0) { if (SelectedItem != null) SelectedItem.SelectActiv(null); SelectedItem = (SessionItemControl)SeaherPanel.Controls[PreSelected]; ((SessionItemControl)SeaherPanel.Controls[PreSelected]).SelectActiv((SessionItemControl)SeaherPanel.Controls[PreSelected]); StopRefreshSeacher = true; CompNameLB.Focus(); CompNameLB.Text = ((SessionItemControl)SeaherPanel.Controls[PreSelected]).seacherResult.ResultString(); CompNameLB.Select(CompNameLB.Text.Length, 0); StopRefreshSeacher = false; e.SuppressKeyPress = true; } break; } } } }