отключить ключевое событие, когда фокус находится на поле автозаполнения текстового поля

В моем проекте есть ФормаmainForm в котором есть два текстовых поляtxtUserName а такжеtxtPassword а также кнопкаbtnLogin.

Я дал следующееtxtUserName свойства:

txtUserName Properties

AutoCompleteCustomSource - Collection
                            --> Administrator
                            --> Clerk
AutoCompleteMode   - Suggest
AutoCompleteSource - CustomSource

btnLogin_Click Event

if (txtUserName.Text.Equals("Administrator") && txtPassword.Text.Equals("123"))
{
    //function to access admin features
}
else if (txtUserName.Text.Equals("Clerk") && txtPassword.Text.Equals("123"))
{
    //function to access clerk features
}
else
{
    MessageBox.Show("Please Enter correct details", "Login Error");
}

Я установилmainForm keypreview вtrue и реализовал функцию для события keyDownmainForm что показано в приведенном ниже коде:

mainForm_KeyDownEvent

if (e.KeyCode.Equals(Keys.Enter))  //Invokes whenever Enter is pressed
{
    btnLogin_Click(sender,e);  //login
}

Теперь моя проблема в том, что когда быtxtUserName и нажавAв раскрывающемся списке выберите «Администратор» (который определяется в коллекциях, как я показал в свойствах выше). Когда я нажимаюEnter на клавиатуре отображается MessageBox вместо выбора «Администратор». Я знаю, что вызывает событие keydownmainForm, Как отключить событие keyDown, когда оно находится в выпадающем меню текстового поля, чтобы я мог нажатьenter?

EDIT:
 Я попробовал приведенный ниже код вpublic form() :(not working)

InitializeComponent();
if (txtUserName.AutoCompleteMode) { /* showing red scribbles */
            this.KeyDown -= mainForm_KeyDown;
        }

Ответы на вопрос(4)

Ваш ответ на вопрос