• ベストアンサー

StringGridでの文字入力制限

C++BuilderでStringGridで、GoEditingプロパティをtrueに設定してセルの内容を編集するときに、数字のみ受付可能にするにはどうしたらいいでしょうか?よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • KoHal
  • ベストアンサー率60% (110/181)
回答No.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を検索参照してください。 かなり細かい指定が可能です。

jdrdj938
質問者

お礼

お返事遅くなり申し訳ありません。 早速その方法でやってみたら問題解決しました。 本当にありがとうございました。 これからもBuilderが使いこなせるように頑張りたいともいます。

その他の回答 (1)

  • kmb01
  • ベストアンサー率45% (63/138)
回答No.1

StringGridにはチェック機能がないようなので、 1、OnSelectCellとOnExitにチェックするコードを書く 2、OnSetEditTextで1文字入力されるたびにチェックする のどちらかだと思います。 あと自分はやったことがないですが、 3、StringGridを継承して新しいクラスを作る 4、TDBGridを使う という方法もあるらしいです。

jdrdj938
質問者

お礼

回答ありがとうございました。一度その方法でやってみます! まだまだ初心者なのでこれから努力してがんばりたいです。 ありがとうございました。

関連するQ&A