private bool PlaceChar( MaskedTextProvider provider, char ch, int startPosition, int length, bool overwrite, out int caretPosition ) { if( this.ShouldQueryAutoCompleteMask( provider.Clone() as MaskedTextProvider, ch, startPosition ) ) { AutoCompletingMaskEventArgs e = new AutoCompletingMaskEventArgs( m_maskedTextProvider.Clone() as MaskedTextProvider, startPosition, length, ch.ToString() ); this.OnAutoCompletingMask( e ); if( ( !e.Cancel ) && ( e.AutoCompleteStartPosition > -1 ) ) { caretPosition = startPosition; // AutoComplete the block. for( int i = 0; i < e.AutoCompleteText.Length; i++ ) { if( !this.PlaceCharCore( provider, e.AutoCompleteText[ i ], e.AutoCompleteStartPosition + i, 0, true, out caretPosition ) ) return false; } caretPosition = e.AutoCompleteStartPosition + e.AutoCompleteText.Length; return true; } } return this.PlaceCharCore( provider, ch, startPosition, length, overwrite, out caretPosition ); }
public void CloneTest () { MaskedTextProvider mtp; MaskedTextProvider mtp2; int counter = 0; mtp = new MaskedTextProvider ("mask"); mtp2 = (MaskedTextProvider)mtp.Clone (); Assert.AreEqual (mtp.Mask, mtp2.Mask, "#" + (counter++).ToString ()); AssertProperties (mtp2, "CloneTest", counter++, mtp.AllowPromptAsInput, mtp.AsciiOnly, mtp.AssignedEditPositionCount, mtp.AvailableEditPositionCount, mtp.Culture, mtp.EditPositionCount, mtp.IncludeLiterals, mtp.IncludePrompt, mtp.IsPassword, mtp.LastAssignedPosition, mtp.Length, mtp.Mask, mtp.MaskCompleted, mtp.MaskFull, mtp.PasswordChar, mtp.PromptChar, mtp.ResetOnPrompt, mtp.ResetOnSpace, mtp.SkipLiterals, mtp.ToString (), mtp.ToString (true), mtp.ToString (false), mtp.ToString (true, true), mtp.ToString (true, false), mtp.ToString (false, true), mtp.ToString (false, false)); }