- ベストアンサー
StringGridでの文字入力制限
C++BuilderでStringGridで、GoEditingプロパティをtrueに設定してセルの内容を編集するときに、数字のみ受付可能にするにはどうしたらいいでしょうか?よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
TStringGrid::OnGetEditMaskイベントが使えます。 仮に(1, 1)~(10,10)までのセルで入力を0~9999までの整数に制限したいのなら、 void __fastcall TForm1::StringGrid1GetEditMask(TObject *Sender, int ACol, int ARow, AnsiString &Value) { if ( ACol >=1 && ACol <= 10 && ARow >=1 && ARow <= 10 ) Value = "9999;0"; } マスク文字列の詳細はヘルプでTEditMaskを検索参照してください。 かなり細かい指定が可能です。
その他の回答 (1)
- kmb01
- ベストアンサー率45% (63/138)
回答No.1
StringGridにはチェック機能がないようなので、 1、OnSelectCellとOnExitにチェックするコードを書く 2、OnSetEditTextで1文字入力されるたびにチェックする のどちらかだと思います。 あと自分はやったことがないですが、 3、StringGridを継承して新しいクラスを作る 4、TDBGridを使う という方法もあるらしいです。
質問者
お礼
回答ありがとうございました。一度その方法でやってみます! まだまだ初心者なのでこれから努力してがんばりたいです。 ありがとうございました。
お礼
お返事遅くなり申し訳ありません。 早速その方法でやってみたら問題解決しました。 本当にありがとうございました。 これからもBuilderが使いこなせるように頑張りたいともいます。