1

プログラムでラベルを作成しようとしていますが、コードはエラーを返しませんが、ウィンドウにラベルが表示されません。

dim dr As DatabaseRecord
dim sql As String

sql = "SELECT * FROM pack WHERE applicabilita_modello LIKE '%" + versione + "%'"

dim rs As RecordSet = database.SQLSelect(sql)

dim i As Integer = 1
dim test(10) As Label
while not rs.EOF


  test(i) = new Label

  test(i).Text =  rs.Field("descrizione").StringValue
  test(i).Left = me.Left
  test(i).Top = me.Top * i
  test(i).Enabled = true
  test(i).Visible = true

  rs.MoveNext

  i = i + 1

wend

rs.Close

レコードセットにいくつかのデータが含まれていることを確認しました。ループは正しく機能しますが、ラベルが表示されず、理由を理解できません。

助けてくれてありがとう

4

1 に答える 1

5

Real Studio で実行時にコントロールを作成するには、2 つの方法があります。1 つ目は、コントロール配列を作成することです。コントロールに MyLabel という名前を付けて、インデックスをゼロにすることができます。次に、コードは次のようになります。

test(i) = new MyLabel

2 つ目は、ContainerControl を使用することです。NEW コマンドと ContainerControl.EmbedWithin メソッドを使用してウィンドウ (または他のコンテナー) にラベルを追加できるため、このコンテナーにはラベルが含まれます。

私は通常、さまざまな理由から ContainerControl アプローチを好みますが、主な理由は、制御配列によってロジックが複雑になるためです。コンテナの唯一の欠点は、Real Studio Professional または Real Studio Enterprise が必要なことです。

http://docs.realsoftware.com/index.php/UsersGuide:Chapter_5:Creating_New_Instances_of_Controls_On_The_Fly

http://docs.realsoftware.com/index.php/ContainerControl

于 2011-10-17T13:48:13.607 に答える