TextBoxに貼り付ける内容をどのように動的に変更できますか?ここでテキストボックスの貼り付け内容を変更します
は、私がイベントをサブスクライブする方法である:ここでは
DataObject.AddPastingHandler (uiTextBox, TextBoxPaste);
は、私は、イベントハンドラを定義する方法である:私はVB.netにかなりのビットを使用し
private void TextBoxPaste (object sender, DataObjectPastingEventArgs args)
{
string clipboard = args.DataObject.GetData (typeof (string)) as string;
Regex nonNumeric = new System.Text.RegularExpressions.Regex (@"\D");
string result = nonNumeric.Replace (clipboard, String.Empty);
// I can't just do "args.DataObject.SetData (result)" here.
}
私はまた、あなたの最初の方法のラインに沿って考えていました。 2番目の方法は、クリップボードの内容を変更するのでかなり悪化します。いずれにせよ、これはまさに私が探していたものです、ありがとう! – Dave
答えをありがとう。私はちょうど最初のメソッド(9行から3行)の短いバージョンを投稿したい: 'int caret = uiTextBox.CaretIndex; uiTextBox.Text = uiTextBox.Text.Insert(uiTextBox.SelectionStart、result); uiTextBox.CaretIndex =キャレット+ result.Length; ' – newman
送信者は、ペーストイベントが発生しているテキストボックスです。特定のテキストボックスを明示的に参照するのではなく、送信者を' TextBox'(または何でも) 。 – Will