Позвольте создать приложение WinForms (у меня Visual Studio 2008 работает в Windows Vista, но похоже, что описанная ситуация происходит почти везде от Win98 до Vista, от собственного или управляемого кода).
Напишите такой код:
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;
}
}
}
Затем запустите приложение. Поместите курсор мыши на форму и больше не касайтесь мыши. Начните вводить что-то в TextBox - курсор скроется из-за него. Когда вы нажимаете клавишу "Enter" - выбросы событий и ComboBox будут сброшены. Но теперь курсор не появится, даже если вы его переместите! И появляется только тогда, когда вы нажимаете где-то.
Там Я нашел обсуждение этой проблемы. Но нет хорошего решения...
Любые мысли?:)