- 題名: DataGridのカンマ表示について
- 日時: 2006/10/11 11:35:42
- ID: 17860
- この記事の返信元:
- (なし)
- この記事への返信:
- [17865] Re[1]: DataGridのカンマ表示について2006/10/11 17:38:09
- ツリーを表示
,があると数字だけで構成されていないから蹴られているんですね。
そこにアルファベットを入力した場合と同じ動作です。
原因がわかれば、,をデータテーブルに書き込む時に取ってしまえばいいんです。
AddHandler clmStyle1.TextBox.Leave, AddressOf TextBox_Leave
としておいて、
Private Sub TextBox_Leave(sender As Object, e As EventArgs)
CType(sender, TextBox).Text = CType(sender, TextBox).Text.Replace(",", String.Empty)
End Sub
■No17880に返信(もり*2さんの記事)
> 「指定されたキャストは有効ではありません」と表示されてしまいます・・・。
> データ型がおかしいのでしょうか?
> すみません、今回VB.NETを初めて扱い出したばかりで・・・。
実際のコードはC#で試しているので、微妙な違いが出ていますね。たぶん、Handles DG_kokyaku1.MouseUpが問題なんじゃないでしょうか?
Dim dgTextBox as TextBox
と宣言しておいて、
dgTextBox = clmStyle1.TextBox
とします。
で、
Private Sub TextBox_MouseUp(ByVal sender As System.Object, ByVal e As MouseEventArgs) Handles dgTextBox.MouseUp
CType(sender, TextBox).Text = CType(sender, TextBox).Text.Replace(",", String.Empty)
' または
' dgTextBox.Text = dgTextBox.Text.Replace(",", String.Empty)
End Sub
かな? (実際にコードが動くことを確認してません)
それから、イベントプロシージャの名前はわかりやすい名前にした方が良いです。
MouseUpイベントプロシージャに、TextBox_Leaveという名前を付けるのは良くないです。
あと、MouseUpより、Enterイベントの方が良くないでしょうか?
#全体がグレーになることから脱出できない(^^;
分類:[.NET]
はじめまして。ヘルプやネットでも調べてみたのですが、どうにも解決方法がみつからず困っています。
ご教示願います。
以下のように、テーブルスタイルを指定し、
DataGridでテーブルを表示しているのですが
開いた画面で、セルの内容を変更しようとすると、元の数値に戻ってしまいます。
対象のセルは、数値型&カンマ編集しています。
セル全体(表示されている数値すべて)を選択して変更すると、入力した値に変更されます。
部分的に削除して変更しようとすると、変更前に戻ってしまいます・・・。
なにか、テーブルスタイルの設定方法がまずいのでしょうか?
(例)・1,500→1,599と「00」の部分だけ変更しようとすると元に戻ってしまう。
・1,500を全選択後削除し、数値を入れなおすと正しく変更される。
Private Function table_style()
Dim clmStyle1 As DataGridTextBoxColumn
Dim tblStyle As DataGridTableStyle
Dim clmStyle1 As DataGridTextBoxColumn
clmStyle1 = CType(tblStyle.GridColumnStyles("引落金額"), DataGridTextBoxColumn)
clmStyle1 = New DataGridTextBoxColumn
clmStyle1.MappingName = "引落金額"
clmStyle1.HeaderText = "引落金額"
clmStyle1.Width = 105
clmStyle1.Format = "#,##0"
clmStyle1.Alignment = HorizontalAlignment.Right
tblStyle.GridColumnStyles.Add(clmStyle1)
End Function