DOBON.NET DOBON.NETプログラミング掲示板過去ログ

コントロール

  • 題名: コントロール
  • 著者: taka
  • 日時: 2004/06/08 14:40:18
  • ID: 4349
  • この記事の返信元:
    • (なし)
  • この記事への返信:
  • ツリーを表示
環境/言語:[WinXP/VB.NET]
分類:[.NET]

はじめまして。takaといいます。

今AccessのシステムをVB.NETに移行中ですが
Accessで記述していた処理が.NETではうまくいきません。

Private m_col As New Collection()
Private m_ctr As Control
private m_dr  As DataRow

With m_col
    .Add(Me.Test1)
    .Add(Me.Test2)
End With

'---< データベースに接続してm_drにデータをセット >

For Each m_ctr In m_col
    mctr.Text = m_dr(m_ctr.Name)
Next

としているのですが画面の項目に値がセットされません。
m_dr(m_ctr.Name)にはちゃんと値がセットされています。
記述の方法が何か違うのでしょうか。
よろしくお願いします。
m_dr(m_ctr.Name)には値がセットされているということですが、
mctr.Text = m_dr(m_ctr.Name)
で意図したとおりに値がコントロールに設定されているか
デバッグ実行して確認してみてはどうでしょうか?
NowhereManさんお返事ありがとうございます。

For Each m_ctr In m_col
m_ctr.Text = m_dr(m_ctr.Name)
Trace.WriteLine(m_ctr.Text)
Trace.WriteLine(m_dr(m_ctr.Name))
Next

としてデバックしていますが
m_ctr.Textとm_dr(m_ctr.Name)の両方に同じ値が出力されています。
値の設定はされているのに画面には表示されていないということでしょうか。

宜しくお願いします。
もしかして、値を表示するコントロールはデザイン時に配置したものではなく、
実行時に動的に生成したものでしょうか?
そうである場合、例えばForm上に直接そのコントロールを配置するならば
' Meはコントロールを配置するForm
Me.Controls.Add(Test1)
としてやる必要があります。
NowhereManさんありがとうございます。

コントロールはデザイン時に配置しています。
今現在InputMan(GrapeCity社)を使って表示しようとしていましたが
ふと思ってテキストボックスに変えてみたら正しく表示されました。

InputManではコントロールによる表示はできないのでしょうか。
それともコントロールに対する記述方法が特殊なのでしょうか。
  • 題名: Re[5]: コントロール
  • 著者: NowhereMan
  • 日時: 2004/06/10 15:54:47
  • ID: 4381
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
なるほど、InputManですか。
Textプロパティをデバッグ出力すると、意図した値が設定されているようなので、
InputManの仕様として、Textプロパティを設定するだけでは表示に反映されない
のかもしれません。まずは、マニュアルをチェックすべきでしょう。

DOBON.NET | プログラミング道 | プログラミング掲示板