MultiLineプロパティがFalseに設定されたEditやMaskコントロールに、改行コードが含まれている文字列を貼り付ける場合、改行コードは削除されないのですか?

文書番号 : 18423     文書種別 : 使用方法     最終更新日 : 2005/07/21
文書を印刷する
対象製品
InputMan for .NET 3.0J
詳細
クリップボードからペーストされたデータに含まれる改行コードは、Multilineプロパティが False の Edit コントロールや、Maskコントロールで入力可能となります。
これは、InputManの仕様にもとづいたもので、クリップボードからペーストされたデータはできるだけ処理しないという方針に添ったものです。
Mask、Editコントロールで次のように処理することで回避することができます。

【Maskコントロール】
次のように書式を設定します。

[VB.NET]
Mask1.Format.Pattern = "[^" & vbCrLf & "]*"

[C#]
mask1.Format.Pattern = "[^¥r¥n]*";

【Editコントロール】
次のように、TextChangingイベントで、改行コードが入力されないようにします。

[VB.NET]
Private Sub Edit1_TextChanging(ByVal sender As Object, ByVal e As GrapeCity.Win.Input.TextChangingEventArgs) Handles Edit1.TextChanging

  If Edit1.Multiline = False AndAlso e.Result.IndexOf(ControlChars.CrLf) > -1 Then
    e.Cancel = True
    Edit1.Text = e.Result.Replace(ControlChars.CrLf, "")
    Edit1.SelectionStart = Edit1.Text.Length
  End If

End Sub

[C#]
private void edit1_TextChanging(object sender, GrapeCity.Win.Input.TextChangingEventArgs e)
{
  if( edit1.Multiline == false && e.Result.IndexOf("¥r¥n") > -1 )
  {
    e.Cancel = true;
    edit1.Text = e.Result.Replace("¥r¥n", "");
    edit1.SelectionStart = edit1.Text.Length;
  }
}

この文書は、以前は次のFAQ IDで公開されていました : 7585