ComboBox

Q1
入力値の桁数を制限したい
[内容]
ComboBoxへ値を入力する際に桁数を制限するにはどうしたらよいか


A1
[解決方法]
ComboBoxには最大入力バイト数を指定するMaxLengthプロパティがありませんが、イベントを利用して、指定のバイト数以上の値が入力された場合に値を切り捨てたり、入力エラーとして再入力を促すといった処理を実装する事で入力バイト数を制限する事が可能です。

実際の記述方法は以下サンプルコードをご覧下さい。


[サンプル1]
指定のバイト数以上の値が入力された場合に値を切捨て
Form CmbB_006_1 {
 X = 0;
 Y = 0;
 Width = 291;
 Height = 122;
 ComboBox ComboBox1 {
  X = 6;
  Y = 47;
  Width = 158;
  Height = 175;
  ComboItem ComboItem1[4];
  
  Function OnTouch( e ) {
   Value = mid(Value,0,10,0);
  }
 }
 Button Button1 {
  X = 174;
  Y = 46;
  Width = 88;
  Height = 23;
  Title = "フォーカス移動用";
  FontSize = 8;
 }
 
 if ( !$DESIGNTIME ) {
  var csvdata = new CsvDocument << CSV{
	1234567890
	12345678901
	123456789012
	1234567890123
  };
  this.ComboBox1.ComboItem1 << csvdata;
 }
}

[サンプル2]
指定のバイト数以上の値が入力された場合にエラーメッセージを表示し、
ComboBoxにフォーカスをあて、背景を赤色に設定
Form CmbB_006_2 {
 X = 0;
 Y = 0;
 Width = 291;
 Height = 122;
 ComboBox ComboBox1 {
  X = 6;
  Y = 47;
  Width = 158;
  Height = 175;
  ComboItem ComboItem1[4];

  Function OnTouch( e ) {
   var val = new String(this.Value);
   if(val.length > 10){
    MessageBox("入力は10バイト以内で行ってください。");
    this.BgColor = $FFCCCC;
    this.SetFocus();
   }else{
    this.BgColor = $STD;
   }
  }
 }
 Button Button1 {
  X = 174;
  Y = 46;
  Width = 88;
  Height = 23;
  Title = "フォーカス移動用";
  FontSize = 8;
 } 
 if ( !$DESIGNTIME ) {
  var csvdata = new CsvDocument << CSV{
	1234567890
	12345678901
	123456789012
	1234567890123
  };
  this.ComboBox1.ComboItem1 << csvdata;
 }
}

管理番号:CmbB_006
 
  Biz-Collections Bizの宝箱 トップへ
  Biz/Browser・Biz/Designer TIPS集 トップへ