- - PR -
【DataGrid】セルのカンマ編集について
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2003-10-09 21:36
いつもお世話になっております。DataGridでのセル編集処理について質問です。
DataGridのセルに対して数値入力する場合に、 ・入力時カンマ無し ・表示時カンマ有り を実現しようと考えております。 DataGridTextBoxColumn.Formatに"#,##0"と定義したのですが、カンマ編集されませんでした。 そこで、DataGridTextBoxColumnのTextBoxプロパティのEnter、Leaveイベントを取得し、それぞれに処理を記述する方法を検討しました。
実行したところ、イベントの取得は出来ており、Format関数の戻り値も問題ないのですが、セルの値は変化しませんでした。 そこで以下の対策を試みたのですが、いずれもうまくいきませんでした。 ・引数senderをByRefにしたところ、AddHandlerの記述部で、 「tb_EnterにデリゲートEventHanlderと同じシグニチャがありません」 というエラーになる。 ・tb_LeaveでDataGridのカレントセルに対して編集処理を行なったが、フォーカス移動後のセルに編集結果が表示されてしまう。
上記問題の解決方法、またはDataGridでのカンマ編集についてよい方法をご存知の方がいらっしゃいましたら是非ご教授ください。 よろしくお願いいたします。 | ||||||||
|
投稿日時: 2003-10-11 04:26
こんにちは。
スレッド見ました。 カンマ区切りですが、Textは多分文字型ですよね? 一度、数値型に変換してからFormatを使ってみては、どうでしょうか? VB6.Format(tb.Text, "#,##0")→VB6.Format(CType(tb.Text,long), "#,##0") 過去にFormatの件で、同じような事があった気がします。 http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=4608&forum=7 またDataGrid表示でのカンマ区切りですが、これはDataGridの「ItemDataBound」イベント中に、同じようなFormat関数を使用してみては、どうでしょうか? 余談ですが、.NETではFormatの代わりに.Tostringを使用するみたいですね... 私も最近、FormatからTostringに変えました。 [ メッセージ編集済み 編集者: Mr.タナカ 編集日時 2003-10-11 04:26 ] [ メッセージ編集済み 編集者: Mr.タナカ 編集日時 2003-10-11 04:33 ] [ メッセージ編集済み 編集者: Mr.タナカ 編集日時 2003-10-11 04:35 ] | ||||||||
|
投稿日時: 2003-10-13 07:37
テンプレートカラムを使えば元々編集用のコントロールと参照用のコントロールを
別々に指定できるため、簡単に実現できますよ。 ------ って、よく見たらWindowsプロジェクトですね。 失礼しました。 [ メッセージ編集済み 編集者: べーちゃん 編集日時 2003-10-13 07:41 ] |
1