рдореБрдЭреЗ рдЯрд╛рдЗрдк рдХреА рдЧрдИ рдХреБрдВрдЬреА рдХреЗ рдХреЗрд╕ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред
рдХреБрдВрдЬреА рдкреНрд░реЗрд╕ рд╕реНрд╡рдпрдВ OnKeyDown
рдХреЗ рд╕рд╛рде рдкрдХрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рддреБрдЪреНрдЫ рд╣реИ рд▓реЗрдХрд┐рди рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЯрд╛рдЗрдк рдХрд┐рдП рдЧрдП рд╡рд░реНрдг рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЯреЗрдХреНрд╕реНрдЯ рдореЗрдВ рдХрд░реНрд╕рд░ рдХреА рд╕реНрдерд┐рддрд┐ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред
рдШрдЯрдирд╛ OnTextChanged
рдХреЛ рдмрд╣реБрдд рджреЗрд░ рд╕реЗ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрдм рдкрд╛рда рдкрд╣рд▓реЗ рд╣реА рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛред
TextInput
рдИрд╡реЗрдВрдЯ рдЖрдЬрд╝рдорд╛рдПрдВ, рдЬрд┐рд╕реЗ рдЖрдк рд░рджреНрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЯреЗрдХреНрд╕реНрдЯрдмреЙрдХреНрд╕ рдпрд╛ рдЯреЗрдХреНрд╕реНрдЯ рдПрд░рд┐рдпрд╛ рдХреА рдХрд░реНрд╕рд░ рд╕реНрдерд┐рддрд┐ TextBox.Selection
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред
рдЗрд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк MaskedTextBox
рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ IMaskedTextProvider
рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдХреЗ рдЬреЛ рдЖрдк рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ рдЙрд╕реЗ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдФрд░ рд╡рд┐рдХрд▓реНрдк рд╣реИ рдЬреЛ рдЯреЗрдХреНрд╕реНрдЯ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдХреИрд╕реЗ рдЪрд╛рд╣рддреЗ рд╣реИрдВред VariableMaskedTextProvider
рдЖрдзрд╛рд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдЕрдкрдиреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ:
```рд╕реА#
рдХреНрд▓рд╛рд╕ рдЕрдкрд░рдХреЗрд╕рдкреНрд░реЛрд╡рд╛рдЗрдбрд░: рд╡реЗрд░рд┐рдПрдмрд▓рдорд╛рд╕реНрдХреЗрдбрдЯреЗрдХреНрд╕реНрдЯрдкреНрд░реЛрд╡рд╛рдЗрдбрд░
{
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдУрд╡рд░рд░рд╛рдЗрдб рдмреВрд▓ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░реЗрдВ (рдЪрд╛рд░ рд╡рд░реНрдг, рд░реЗрдлрд░реА int рд╕реНрдерд┐рддрд┐)
{
рд╡рд╛рдкрд╕реА рдЖрдзрд╛рд░ред рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░реЗрдВ (char.ToUpper (рдЪрд░рд┐рддреНрд░), рд░реЗрдлрд░реА рд╕реНрдерд┐рддрд┐);
}
public override bool Replace(char character, ref int position)
{
base.Replace(char.ToUpper(character), ref position);
}
}
Then to use it:
```c#
new MaskedTextBox(new UpperCaseProvider());
рдЙрдореНрдореАрдж рд╣реИ рдХреА рдпрд╣ рдорджрдж рдХрд░реЗрдЧрд╛ред
рдХрд╛рдо рдЪрд▓ рдЬрд╛рдпреЗрдЧрд╛ред
рдореИрдВрдиреЗ рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХреА рдХреНрдпреЛрдВрдХрд┐ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХрд╣рддрд╛ рд╣реИ рдХрд┐ TextInput
рдореЗрдВ iOS
рдХреА рд╕реАрдорд╛рдПрдВ рд╣реИрдВред
рдЗрд╕реЗ рд░рдлреВ рдХрд░реЗрдВред
рдореИрдВ рдЗрд╕реЗ ComboBox
рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рд▓реЗрдХрд┐рди рдореИрдВ ControlObject
рд╕реЗ Eto.Wpf.Forms.Controls.EtoComboBox
(рдЗрд╕рдХреЗ TextBox
рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП) рдирд╣реАрдВ рдбрд╛рд▓ рд╕рдХрддрд╛, рдЬреЛ рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ рднреАрдЦ рдорд╛рдБрдЧрддрд╛ рд╣реИ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рддрд░реАрдХреЗ рд╕реЗ рдЗрд╕реЗ рдХреИрд╕реЗ рдХрд░реЗрдВ рдХрд╛ рдкреНрд░рд╢реНрдиред
рд╣рдореНрдо, рд╣рд╛рдБ ComboBox
рдореЗрдВ TextBox
рдХреА рддрд░рд╣ рд╕рднреА рдЯреЗрдХреНрд╕реНрдЯ рдИрд╡реЗрдВрдЯ/рдЧреБрдг рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред рдЙрдиреНрд╣реЗрдВ рд╢рд╛рдпрдж рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдпрджрд┐ рдЖрдк рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕реНрд╡рдд: рдкреВрд░реНрдг рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдПрдХ рдЪреАрдЬ рдЬрд┐рд╕рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ рд╡рд╣ рд╣реИ рдЯреЗрдХреНрд╕реНрдЯрдмреЙрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдФрд░ рд╕рд╣реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╕реАрдорд╛рд╣реАрди рд░реВрдк рджрд┐рдЦрд╛рдирд╛ред рдпрд╣ рдЖрдкрдХреЛ рджрд┐рдЦрд╛рдП рдЧрдП рдЖрдЗрдЯрдо рдФрд░ рдЙрдиреНрд╣реЗрдВ рдХреИрд╕реЗ рджрд┐рдЦрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдореЗрдВ рдЕрдзрд┐рдХ рд▓рдЪреАрд▓рд╛рдкрди рджреЗрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдЕрдВрдд рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕рд╛ рдХрд╛рдо рд╣реИред
рдХрд╛рдо рдЪрд▓ рдЬрд╛рдпреЗрдЧрд╛ред рдзрдиреНрдпрд╡рд╛рджред
рдЕрд░реЗ @LaraSQP , рдореИрдВ
рддреБрдо рд╕рд╣реА рд╣реЛред рдЙрд╕рдХреЗ рд▓рд┐рдП рдорд╛рдлрд╝ рдХрд░рдирд╛ред