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

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

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

Свойства txtUserName

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

Событие btnLogin_Click

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

РЕДАКТИРОВАТЬ:

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

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

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

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