Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why ComboBox hides cursor when DroppedDown is set?

Tags:

Let's create WinForms Application (I have Visual Studio 2008 running on Windows Vista, but it seems that described situation takes place almost everywhere from Win98 to Vista, on native or managed code).

Write such code:

using System; using System.Drawing; using System.Windows.Forms;  namespace WindowsFormsApplication1 {     public class Form1 : Form     {         private readonly Button button1 = new Button();         private readonly ComboBox comboBox1 = new ComboBox();         private readonly TextBox textBox1 = new TextBox();          public Form1() {             SuspendLayout();             textBox1.Location = new Point(21, 51);             button1.Location = new Point(146, 49);             button1.Text = "button1";             button1.Click += button1_Click;             comboBox1.Items.AddRange(new[] {"1", "2", "3", "4", "5", "6"});             comboBox1.Location = new Point(21, 93);             AcceptButton = button1;             Controls.AddRange(new Control[] {textBox1, comboBox1, button1});             Text = "Form1";             ResumeLayout(false);             PerformLayout();         }          private void button1_Click(object sender, EventArgs e) {             comboBox1.DroppedDown = true;         }     } } 

Then, run app. Place mouse cursor on the form and don't touch mouse anymore. Start to type something in TextBox - cursor will hide because of it. When you press Enter key - event throws and ComboBox will be dropped down. But now cursor won't appear even if you move it! And appears only when you click somewhere.

There I've found discussion of this problem. But there's no good solution...

Any thoughts? :)

like image 311
Ivan Danilov Avatar asked Jul 07 '09 15:07

Ivan Danilov


People also ask

How do I set ComboBox to readonly?

Just change the DropDownStyle to DropDownList . Or if you want it completely read only you can set Enabled = false , or if you don't like the look of that I sometimes have two controls, one readonly textbox and one combobox and then hide the combo and show the textbox if it should be completely readonly and vice versa.

How do I stop a ComboBox from editing?

We can select any option in the dropdown list. Now add state = "readonly" in the Combobox object, it will make the Combobox Entry Widget disabled.

Is the default event of ComboBox control?

By default, DropDownStyle property of a Combobox is DropDown. In this case user can enter values to combobox. When you change the DropDownStyle property to DropDownList, the Combobox will become read only and user can not enter values to combobox.

What is the use of DropDown style property of the ComboBox control?

The DropDownStyle property specifies whether the list is always displayed or whether the list is displayed in a drop-down. The DropDownStyle property also specifies whether the text portion can be edited. See ComboBoxStyle for the available settings and their effects.


1 Answers

I was able to work around the problem like this:

comboBox1.DroppedDown = true; Cursor.Current = Cursors.Default; 
like image 141
Daniel Stutzbach Avatar answered Oct 06 '22 00:10

Daniel Stutzbach