フォーカス喪失後、DisplayFormatが適用されないことがある

文書番号 : 25065     文書種別 : 不具合     最終更新日 : 2007/11/07
文書を印刷する
対象製品
InputMan for .NET 4.0J Windows Forms Edition
発生環境
動作環境と同じ
状況
修正済み
詳細
この問題はDateコントロールとNumberコントロールで発生します。
Leaveイベントでメッセージボックスを表示させると、このメッセージボックスを閉じて次のタブオーダーのコントロールにフォーカスが移った後も、DisplayFormatの書式が適用されません。
回避方法
この問題を修正した修正版(v4.0.2008.0415)をご利用ください。こちらからダウンロードできます。

またはLeaveイベント内で以下のコード例のようにFormatプロパティを再設定すると、この問題を回避することができます。

[Visual Basic]
(Dateコントロールの場合)
Private Sub Date1_Leave( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Date1.Leave
  MessageBox.Show( "Pause" )
  
  Dim f As DateFormat = Date1.Format
  Date1.Format = Nothing
  Date1.Format = f
End Sub

(Numberコントロールの場合)
Private Sub Number1_Leave( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Number1.Leave
  MessageBox.Show( "Pause" )

  Dim f As NumberFormat = Number1.Format
  Number1.Format = Nothing
  Number1.Format = f
End Sub

[C#]
(Dateコントロールの場合)
private void date1_Leave( object sender, EventArgs e )
{
  MessageBox.Show( "Pause" );

  DateFormat f = date1.Format;
  date1.Format = null;
  date1.Format = f;
}

(Numberコントロールの場合)
private void number1_Leave( object sender, EventArgs e )
{
  MessageBox.Show( "Pause" );
  
  NumberFormat f = number1.Format;
  number1.Format = null;
  number1.Format = f;
}
キーワード
INMN06542

この文書は、以前は次のバグレポートIDで公開されていました : 7204