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; using System.Data.SqlClient; namespace Агенты { public partial class MainForm : Form { class ItemPanel : Panel { public System.Windows.Forms.PictureBox PbxLogo; public System.Windows.Forms.Label LblPhone; public System.Windows.Forms.Label LblTitle; public string ID; public ItemPanel() { this.PbxLogo = new System.Windows.Forms.PictureBox(); this.LblTitle = new System.Windows.Forms.Label(); this.LblPhone = new System.Windows.Forms.Label(); // // panel1 // this.BackColor = System.Drawing.Color.White; this.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.Controls.Add(this.LblPhone); this.Controls.Add(this.LblTitle); this.Controls.Add(this.PbxLogo); this.Location = new System.Drawing.Point(76, 43); this.Name = "panel1"; this.Size = new System.Drawing.Size(296, 200); this.TabIndex = 0; // // PbxLogo // this.PbxLogo.Location = new System.Drawing.Point(13, 18); this.PbxLogo.Name = "PbxLogo"; this.PbxLogo.Size = new System.Drawing.Size(119, 120); this.PbxLogo.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; this.PbxLogo.TabIndex = 0; this.PbxLogo.TabStop = false; // // LblTitle // this.LblTitle.AutoSize = true; this.LblTitle.Location = new System.Drawing.Point(13, 145); this.LblTitle.Name = "LblTitle"; this.LblTitle.Size = new System.Drawing.Size(46, 17); this.LblTitle.TabIndex = 1; this.LblTitle.Text = "label1"; // // LblPhone // this.LblPhone.AutoSize = true; this.LblPhone.Location = new System.Drawing.Point(13, 171); this.LblPhone.Name = "LblPhone"; this.LblPhone.Size = new System.Drawing.Size(46, 17); this.LblPhone.TabIndex = 2; this.LblPhone.Text = "label2"; } } public MainForm() { InitializeComponent(); } string TxtCon = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\agent1.mdf;Integrated Security=True;Connect Timeout=30"; struct Agent { // название, адрес, телефон, логотип public string ID, Title, Address, Phone, Logo; } List LstAgent = new List(); ItemPanel CurrentItem; void GetDateFromDB() { //SqlConnection Con = new SqlConnection(TxtCon); //Con.Open(); //string TxtQuery = "SELECT ID, Title, Address, Phone, Logo FROM Agent"; //SqlCommand Query = new SqlCommand(TxtQuery, Con); //SqlDataReader Res = Query.ExecuteReader(); //LstAgent.Clear(); //while (Res.Read()) //{ // Agent Agent1 = new Agent(); // Agent1.Title = Res["Title"].ToString(); // название // Agent1.Address = Res["Address"].ToString(); // адрес // Agent1.Phone = Res["Phone"].ToString(); // телефон // Agent1.Logo = Res["Logo"].ToString(); // логотип // Agent1.ID = Res["ID"].ToString(); // LstAgent.Add(Agent1); //} //Con.Close(); string[] Titles= new string[] {"Ковалев", "Бонда", "Кривошеев", "Лебедкин"}; string[] Addresses = new string[] { "Новозыбков", "Брянск", "Москва", "Париж" }; string[] Phones = new string[] { "3-15-24", "+8(48343)336985", "+375(940)45225621", "0-00-012" }; string[] Logos = new string[] { "agent_1.png", "agent_2.png", "agent_3.png", "agent_4.png", "agent_5.png", "agent_6.png", "agent_7.png" }; LstAgent.Clear(); Random rnd = new Random(); for (int i=0; i<20; i++) { Agent Agent1 = new Agent(); Agent1.Title = Titles[rnd.Next(0, Titles.Length)]; // название Agent1.Address = Addresses[rnd.Next(0, Addresses.Length)]; Agent1.Phone = Phones[rnd.Next(0, Phones.Length)]; Agent1.Logo = Logos[rnd.Next(0, Logos.Length)]; // LstAgent.Add(Agent1); } } void FillPanel() { MainPanel.Controls.Clear(); foreach(Agent Agent1 in LstAgent) { ItemPanel Item = new ItemPanel(); Item.LblTitle.Text = Agent1.Title; Item.LblPhone.Text = Agent1.Phone; Item.ID = Agent1.ID; try { Item.PbxLogo.Image = Image.FromFile(Application.StartupPath + "\\agents\\" + Agent1.Logo); } catch { Item.PbxLogo.Image = Image.FromFile(Application.StartupPath + "\\agents\\picture.png"); } MainPanel.Controls.Add(Item); Item.Click += Item_Click; Item.PbxLogo.Click += Object_Click; Item.LblTitle.Click += Object_Click; Item.LblPhone.Click += Object_Click; if (MainPanel.Controls.Count == 1) { CurrentItem = Item; CurrentItem.BackColor = Color.LightGreen; } } } private void Object_Click(object sender, EventArgs e) { CurrentItem.BackColor = Color.White; CurrentItem = (sender as Control).Parent as ItemPanel; CurrentItem.BackColor = Color.LightGreen; } private void Item_Click(object sender, EventArgs e) { CurrentItem.BackColor = Color.White; CurrentItem = sender as ItemPanel; CurrentItem.BackColor = Color.LightGreen; } private void Form1_Load(object sender, EventArgs e) { GetDateFromDB(); FillPanel(); } private void button1_Click(object sender, EventArgs e) { //MessageBox.Show(CurrentItem.ID); GetDateFromDB(); FillPanel(); } } }