Protected Override - Текстбокс Персоналисадо

У меня есть недостаток с контролем TextBox настроенный, что я создал, и к которому я добавил ему несколько событий, между которыми он находится KeyPress в котором я санкционирую формат, отчекань, даже там функционирует все добро.

Моя проблема - что в момент хотения добавить специфические утверждения под контроль в проектах, которые они получают в наследство от этого, он как будто он не распознавал события, созданные в контроле.

Эдж: контроль санкционирует, что вошедшая цепь была числовой: Ok

В часть, если я хочу санкционировать, что он не содержал номер 5 в проекте, где я это получил в наследство, он это не распознает.

public class CajaDeTexto : TextBox
{
    protected  override void OnKeyPress(KeyPressEventArgs e)
    {
        try
        {
            if (IsEnter(e))
            {
                this.SelectionStart = this.Text.Length;
                Tab();
            }
            if (EJ_Mayúsculas) { KeyPressMayusculas(e); }
            if (EJ_SoloNumero) { KeyPressNumeros(ref e); }
            if ((EJ_Dinero) | (EJ_ValorMinimo != 0 | EJ_ValorMaximo != 0) | (EJ_Decimales)) { KeyPressDinero(ref e); }
            if (EJ_Cedula) { KeyPressIdentificacion(ref e); }
        }
        catch (Exception ex)
        { throw ex; }

    }
}

В проекте, где я использую контроль, он не признает что-то этим:

private void cajaDeTexto1_KeyPress(object sender, KeyPressEventArgs e)
{
    //Ejemplo
    if(e.KeyChar ==(char)Keys.Enter)
    {
        Guardar();
    }
}
0
задан 30.04.2019, 11:28
0 ответов

Серхио, клялся бы в том, что проблема состоит в том, что ты забываешь позвонить в осуществление метода OnKeyPress() базового класса, который является той, кто возьмется за то, чтобы призывать всех подписчиков события KeyPress. Как это у тебя есть, единственное утверждение, которое осуществится, - та, которую осуществил ты в CajaDeTexto.

Измени твое осуществление OnKeyPress и добавь:

base.OnKeyPress(e);
1
ответ дан 03.12.2019, 18:49

Чередующееся решение состоит в том, чтобы манипулировать событием стороны клиента.

В заявлении тебя TextBox помещать событие onkeypress="return EnterKey(event)" для того, чтобы он остался немного как это:

<asp:TextBox runat="server" ID="txtBuscar" onkeypress="return EnterKey(event)"></asp:TextBox>

И в начало твоей страницы delcarar функция EnterKey(evt) в сегменте кода языка сценариев JavaScript для того, чтобы он остался немного как это:

<script>
    function EnterKey(evt) {
        if (window.event.keyCode == 13)
            __doPostBack('<%=cajaDeTexto1.UniqueID%>', "");
        return true;
    }
</script>
0
ответ дан 03.12.2019, 18:49
  • 1
    Ты принимаешь q эту в ASP.NET, и никогда он не говорил что-либо подобное. Смоги быть любой вещью. –  29.11.2016, 19:40