Добавить счетчик символов в элемент управления MemoExEdit - PullRequest
1 голос
/ 06 августа 2010

Я пытаюсь сделать счетчик символов, 40/200 ... 41/200 и так далее. Теперь для контроля над текстовым полем я подключаюсь к событию KeyUp с чем-то вроде этого ...

    public static void GetRemainingChars(MyTextBox txt, LabelControl lbl)
    {
        var maxChars = txt.Properties.MaxLength;
        lbl.Text = txt.Text.Length + "/" + maxChars;
    }

К сожалению, элемент управления MemoExEdit имеет всплывающее окно, в которое вы вводите текст, и кажется скрытым. Я попробовал KeyUp, EditValueChanging, TextChanged, и все они делают то же самое. Они не запускаются, пока пользователь не закроет всплывающее окно. Я предполагаю, что это составной элемент управления, который передает значение редактирования при закрытии.

Есть идеи о том, как я могу попасть на всплывающие события? Есть ли другой способ сделать это?

1 Ответ

4 голосов
/ 06 августа 2010

Просто потому, что я не смог найти это нигде, я опубликую свое решение для пользы других.

Подпишитесь на всплывающее событие элемента управления MemoExEdit, а затем внутри него подпишитесь на событие EditValueChanging.Вот где вы можете подключиться. См. Ниже для моей рабочей версии.Твики могут понадобиться для себя.Кроме того, всплывающее событие создается в моем файле Designer.cs.

private void memContactWith_Properties_Popup(object sender, EventArgs e)
{
   MemoExPopupForm popupForm = (sender as DevExpress.Utils.Win.IPopupControl).PopupWindow as MemoExPopupForm;
   MemoEdit me = popupForm.Controls[2] as MemoEdit;
   me.EditValueChanging += new DevExpress.XtraEditors.Controls.ChangingEventHandler(me_EditValueChanging);            
}

void me_EditValueChanging(object sender, DevExpress.XtraEditors.Controls.ChangingEventArgs e)
{
   var memo = (sender as MemoEdit);
   var maxChars = memo.Properties.MaxLength;
   lblContactWithCharCount.Text = memo.Text.Length + "/" + maxChars;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...