プロが教えるわが家の防犯対策術!

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

A 回答 (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を検索参照してください。
かなり細かい指定が可能です。
    • good
    • 0
この回答へのお礼

お返事遅くなり申し訳ありません。

早速その方法でやってみたら問題解決しました。

本当にありがとうございました。

これからもBuilderが使いこなせるように頑張りたいともいます。

お礼日時:2005/01/18 14:42

StringGridにはチェック機能がないようなので、


1、OnSelectCellとOnExitにチェックするコードを書く
2、OnSetEditTextで1文字入力されるたびにチェックする
のどちらかだと思います。

あと自分はやったことがないですが、
3、StringGridを継承して新しいクラスを作る
4、TDBGridを使う
という方法もあるらしいです。
    • good
    • 0
この回答へのお礼

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

ありがとうございました。

お礼日時:2005/01/15 23:20

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!