作成日: 2014/09/26 最終更新日: 2014/09/26
文書種別
使用方法
詳細
InputMan for Windows Forms の GcDate コントロールや GcNumber コントロールを、FlexGrid のカスタムエディタに使用しているとき、該当のセルを編集状態にするタイミングで、直前に編集した別のセルの値がそのセルにも表示されるケースがあります。
例えば、以下のようなコードを実装して実行したとき、(1, 1)セルに「2012/02/23」と入力して確定し、次に(1, 2)セルに「2012/02/24」と入力して確定したのち、再度(1, 1)セルに戻って編集状態にすると、(1, 2)セルに入力した「2012/02/24」が表示されます。
◎サンプルコード(VB)
◎サンプルコード(C#)
この場合、StartEdit イベントで FlexGrid のデータを InputMan のコントロールに明示的に設定することで対応します。以下のようなコードになります。
◎サンプルコード(VB)
◎サンプルコード(C#)
例えば、以下のようなコードを実装して実行したとき、(1, 1)セルに「2012/02/23」と入力して確定し、次に(1, 2)セルに「2012/02/24」と入力して確定したのち、再度(1, 1)セルに戻って編集状態にすると、(1, 2)セルに入力した「2012/02/24」が表示されます。
◎サンプルコード(VB)
flex.Cols(1).DataType = GetType(DateTime)
flex.Cols(1).Editor = GcDate1
flex.Cols(1).Editor = GcDate1
◎サンプルコード(C#)
flex.Cols[1].DataType = typeof(DateTime);
flex.Cols[1].Editor = gcDate1;
flex.Cols[1].Editor = gcDate1;
この場合、StartEdit イベントで FlexGrid のデータを InputMan のコントロールに明示的に設定することで対応します。以下のようなコードになります。
◎サンプルコード(VB)
If e.Col = 1 Then
If C1FlexGrid1(C1FlexGrid1.Row, C1FlexGrid1.Col) <> Nothing Then
GcDate1.Value = CType(C1FlexGrid1(C1FlexGrid1.Row, C1FlexGrid1.Col), DateTime)
End If
End If
If C1FlexGrid1(C1FlexGrid1.Row, C1FlexGrid1.Col) <> Nothing Then
GcDate1.Value = CType(C1FlexGrid1(C1FlexGrid1.Row, C1FlexGrid1.Col), DateTime)
End If
End If
◎サンプルコード(C#)
if (e.Col == 1)
{
if (flex[flex.Row, flex.Col] != null)
{
gcDate1.Value = (DateTime)(flex[flex.Row, flex.Col]);
}
}
{
if (flex[flex.Row, flex.Col] != null)
{
gcDate1.Value = (DateTime)(flex[flex.Row, flex.Col]);
}
}
旧文書番号
72030