Csharp/C Sharp by API/System.Windows.Forms/ComboBoxStyle

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

ComboBoxStyle.DropDown

<source lang="csharp"> using System; using System.Drawing; using System.Windows.Forms; using System.Data; using System.Data.SqlClient; public class ComboBoxes : Form {

 ComboBox cmb;
 Button btnDisplay;
 Button btnInsert;
 Button btnSelect;
 Label lblEdit;
 TextBox txtDisplay;
 Boolean boolChange = false;
 Boolean boolProcessed = false;
 public ComboBoxes()
 {
   Size = new Size(300,400);
   this.Load += new EventHandler(this_Load);
   cmb = new ComboBox();
   cmb.Parent = this;
   cmb.Location = new Point(10,10);
   cmb.Size = new Size(ClientSize.Width / 2, Height - 200);
   cmb.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Bottom;
   cmb.DropDownStyle = ComboBoxStyle.DropDown;    
   cmb.DropDownStyle = ComboBoxStyle.Simple;
   cmb.DropDownWidth = (int)(cmb.Width * 1.5);
   cmb.MaxDropDownItems = 12;
   cmb.MaxLength = 20;
   cmb.SelectionChangeCommitted += new EventHandler(cmb_SelectionChangeCommitted);
   cmb.Leave += new EventHandler(cmb_Leave);
   btnInsert = new Button();
   btnInsert.Parent = this;
   btnInsert.Text = "&Insert Item";
   btnInsert.Size = new Size((int)(Font.Height * .75) * btnInsert.Text.Length, cmb.Height);
   btnInsert.Location = new Point(cmb.Right + 10, cmb.Top);
   btnInsert.Click += new System.EventHandler(btnInsert_Click);
   lblEdit = new Label();
   lblEdit.Parent = this;
   lblEdit.BorderStyle = BorderStyle.Fixed3D;
   lblEdit.Location = new Point(cmb.Left, cmb.Bottom + 10);
   lblEdit.BackColor = Color.LightGray;
   lblEdit.Text = "";
   lblEdit.Size = new Size(cmb.DropDownWidth, Font.Height * 2);
   btnDisplay = new Button();
   btnDisplay.Parent = this;
   btnDisplay.Text = "&Display Items";
   btnDisplay.Size = new Size((int)(Font.Height * .75) * btnDisplay.Text.Length, cmb.Height);
   btnDisplay.Location = new Point(lblEdit.Left, lblEdit.Bottom + 10);
   btnDisplay.Click += new System.EventHandler(btnDisplay_Click);
   txtDisplay = new TextBox();
   txtDisplay.Parent = this;
   txtDisplay.Location = new Point(btnDisplay.Left, btnDisplay.Bottom + 10);
   txtDisplay.Multiline = true;
   txtDisplay.ReadOnly = true;
   txtDisplay.BackColor = Color.LightGray;
   txtDisplay.ScrollBars = ScrollBars.Vertical;
   txtDisplay.Text = "";
   txtDisplay.Size = new Size(cmb.DropDownWidth, 200);
   
   btnSelect = new Button();
   btnSelect.Parent = this;
   btnSelect.Text = "&Select 4";
   btnSelect.Size = new Size((int)(Font.Height * .75) * btnSelect.Text.Length, cmb.Height);
   btnSelect.Location = new Point(btnDisplay.Right + 10, btnDisplay.Top);
   btnSelect.Click += new System.EventHandler(btnSelect_Click);
     cmb.Items.Add("A");
     cmb.Items.Add("B");
     cmb.Items.Add("C");
     cmb.Items.Add("D");
     cmb.Items.Add("E");                        
   cmb.SelectedIndex = 0;   
 }
 static void Main() 
 {
   Application.Run(new ComboBoxes());
 }
 private void this_Load(object sender, EventArgs e)
 {
   cmb.TextChanged += new EventHandler(cmb_TextChanged);
   cmb.SelectedIndexChanged += new EventHandler(cmb_SelectedIndexChanged);
 }
 private void cmb_TextChanged(object sender, EventArgs e)
 {
   if (!boolProcessed)
     lblEdit.Text = cmb.Text;
   boolChange = true;
 }    
 private void cmb_SelectedIndexChanged(object sender, EventArgs e)
 {
   if (boolChange)
   {
     boolChange = false;
     boolProcessed = false;
   }
 }
 private void cmb_SelectionChangeCommitted(object sender, EventArgs e)
 {
   if (boolChange)
     ProcessChange();
 }    
 private void cmb_Leave(object sender, EventArgs e)
 {
   if (boolChange)
   {
     ProcessChange();
     boolChange = false;
   }
 }    
 private void ProcessChange()
 {
   lblEdit.Text = "Edited: " + cmb.Text;
   boolProcessed = true;
 }
 private void btnDisplay_Click(object sender, EventArgs e)
 {
   string str = DateTime.Now.ToString() + "\r\n";
   foreach (object item in cmb.Items)
   {
     str += item.ToString() + "\r\n";
   }
   txtDisplay.Text = str;
 }    
 private void btnSelect_Click(object sender, EventArgs e)
 {
   cmb.Select(1,2);
 }    
 private void btnInsert_Click(object sender, EventArgs e)
 {
   if (cmb.FindStringExact(cmb.Text) != -1)
   {
     MessageBox.Show(""" + cmb.Text + "" already exists in the list.\r\n" + 
         "Will not be added again.",
         "Already Exists!");
   }
   else if (cmb.Text == "")
   {
     MessageBox.Show("There is nothing to add.","Nothing There");
   }
   else
   {
     cmb.Items.Add(cmb.Text);
   }
 }

}

 </source>


ComboBoxStyle.Simple

<source lang="csharp"> using System; using System.Drawing; using System.Windows.Forms; using System.Data; using System.Data.SqlClient; public class ComboBoxes : Form {

 ComboBox cmb;
 Button btnDisplay;
 Button btnInsert;
 Button btnSelect;
 Label lblEdit;
 TextBox txtDisplay;
 Boolean boolChange = false;
 Boolean boolProcessed = false;
 public ComboBoxes()
 {
   Size = new Size(300,400);
   this.Load += new EventHandler(this_Load);
   cmb = new ComboBox();
   cmb.Parent = this;
   cmb.Location = new Point(10,10);
   cmb.Size = new Size(ClientSize.Width / 2, Height - 200);
   cmb.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Bottom;
   cmb.DropDownStyle = ComboBoxStyle.DropDown;    
   cmb.DropDownStyle = ComboBoxStyle.Simple;
   cmb.DropDownWidth = (int)(cmb.Width * 1.5);
   cmb.MaxDropDownItems = 12;
   cmb.MaxLength = 20;
   cmb.SelectionChangeCommitted += new EventHandler(cmb_SelectionChangeCommitted);
   cmb.Leave += new EventHandler(cmb_Leave);
   btnInsert = new Button();
   btnInsert.Parent = this;
   btnInsert.Text = "&Insert Item";
   btnInsert.Size = new Size((int)(Font.Height * .75) * btnInsert.Text.Length, cmb.Height);
   btnInsert.Location = new Point(cmb.Right + 10, cmb.Top);
   btnInsert.Click += new System.EventHandler(btnInsert_Click);
   lblEdit = new Label();
   lblEdit.Parent = this;
   lblEdit.BorderStyle = BorderStyle.Fixed3D;
   lblEdit.Location = new Point(cmb.Left, cmb.Bottom + 10);
   lblEdit.BackColor = Color.LightGray;
   lblEdit.Text = "";
   lblEdit.Size = new Size(cmb.DropDownWidth, Font.Height * 2);
   btnDisplay = new Button();
   btnDisplay.Parent = this;
   btnDisplay.Text = "&Display Items";
   btnDisplay.Size = new Size((int)(Font.Height * .75) * btnDisplay.Text.Length, cmb.Height);
   btnDisplay.Location = new Point(lblEdit.Left, lblEdit.Bottom + 10);
   btnDisplay.Click += new System.EventHandler(btnDisplay_Click);
   txtDisplay = new TextBox();
   txtDisplay.Parent = this;
   txtDisplay.Location = new Point(btnDisplay.Left, btnDisplay.Bottom + 10);
   txtDisplay.Multiline = true;
   txtDisplay.ReadOnly = true;
   txtDisplay.BackColor = Color.LightGray;
   txtDisplay.ScrollBars = ScrollBars.Vertical;
   txtDisplay.Text = "";
   txtDisplay.Size = new Size(cmb.DropDownWidth, 200);
   
   btnSelect = new Button();
   btnSelect.Parent = this;
   btnSelect.Text = "&Select 4";
   btnSelect.Size = new Size((int)(Font.Height * .75) * btnSelect.Text.Length, cmb.Height);
   btnSelect.Location = new Point(btnDisplay.Right + 10, btnDisplay.Top);
   btnSelect.Click += new System.EventHandler(btnSelect_Click);
     cmb.Items.Add("A");
     cmb.Items.Add("B");
     cmb.Items.Add("C");
     cmb.Items.Add("D");
     cmb.Items.Add("E");                        
   cmb.SelectedIndex = 0;   
 }
 static void Main() 
 {
   Application.Run(new ComboBoxes());
 }
 private void this_Load(object sender, EventArgs e)
 {
   cmb.TextChanged += new EventHandler(cmb_TextChanged);
   cmb.SelectedIndexChanged += new EventHandler(cmb_SelectedIndexChanged);
 }
 private void cmb_TextChanged(object sender, EventArgs e)
 {
   if (!boolProcessed)
     lblEdit.Text = cmb.Text;
   boolChange = true;
 }    
 private void cmb_SelectedIndexChanged(object sender, EventArgs e)
 {
   if (boolChange)
   {
     boolChange = false;
     boolProcessed = false;
   }
 }
 private void cmb_SelectionChangeCommitted(object sender, EventArgs e)
 {
   if (boolChange)
     ProcessChange();
 }    
 private void cmb_Leave(object sender, EventArgs e)
 {
   if (boolChange)
   {
     ProcessChange();
     boolChange = false;
   }
 }    
 private void ProcessChange()
 {
   lblEdit.Text = "Edited: " + cmb.Text;
   boolProcessed = true;
 }
 private void btnDisplay_Click(object sender, EventArgs e)
 {
   string str = DateTime.Now.ToString() + "\r\n";
   foreach (object item in cmb.Items)
   {
     str += item.ToString() + "\r\n";
   }
   txtDisplay.Text = str;
 }    
 private void btnSelect_Click(object sender, EventArgs e)
 {
   cmb.Select(1,2);
 }    
 private void btnInsert_Click(object sender, EventArgs e)
 {
   if (cmb.FindStringExact(cmb.Text) != -1)
   {
     MessageBox.Show(""" + cmb.Text + "" already exists in the list.\r\n" + 
         "Will not be added again.",
         "Already Exists!");
   }
   else if (cmb.Text == "")
   {
     MessageBox.Show("There is nothing to add.","Nothing There");
   }
   else
   {
     cmb.Items.Add(cmb.Text);
   }
 }

}

 </source>