@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

form上のラベルコントロールに値が表示されない

1
投稿者投稿内容
tomoen
会議室デビュー日: 2007/08/30
投稿数: 2
投稿日時: 2007-08-30 10:05
はじめて投稿します。よろしくお願いします。

VS2005 VB.net で開発を行っています。

FORM1にラベルコントロールが5つあって
ある特定のフォルダに別プログラムによりファイルが作成されたら
DBからデータを取得して、そのラベルコントロールのテキストに値を
いれるというプログラムを作成しています。

FORM1とCLASS(FILE_CHECK)でその動きを実現させようとしているのですが。

FORM1
FORM_LOADにて
 FILE_CHECK.main()を呼出し、
FILE_CHECKクラスでFileSystemWatcherを使用して
ファイルが作成されたらDB接続し、データを取得。
そのあと、クラス内で
form1.aaa_label.text = "AAA" '取得した内容
と記述し、値をセットしています。

エラーも何も発生していません。
デバッグでは、ラベルのテキストにセットされているのは確認できるのですが、
FORMの画面上には何も反映されていない状況です。

どうしたら、反映されるのでしょうか・・・?

ご教授願います。よろしくおねがいします。
ダッチ
大ベテラン
会議室デビュー日: 2005/10/31
投稿数: 113
投稿日時: 2007-08-30 10:08
引用:
form1.aaa_label.text = "AAA"


この form1 ですが表示している FORM1 のインスタンスですか?

VB2005 では既定のインスタンスにより
フォーム名を直接記載した場合に、自動でインスタンスが生成されます。

form1 が表示しているインスタンスであるかどうか確認してみてください。
YAS
ベテラン
会議室デビュー日: 2006/02/15
投稿数: 59
投稿日時: 2007-08-30 12:12
FileSystemWatcherのイベントは別スレッドから呼ばれるので,通常ではFormのコントロールの操作はできません。
FileSystemWatcher.SynchronizingObjectプロパティにFrom1を設定する必要があります。

SynchronizingObject = From1
一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2007-08-30 12:22
問題が存在する場所を特定しましょう。
特定できずとも、できるだけ狭めましょう。

ファイルのチェックが正しくできていないのが原因ですか?
データベースから正しい値を取得できていないのが原因ですか?
値は取れてきているのに、ラベルに値を設定しても画面に出ないんですか?

タイトルからすると、値は取れてきているのにラベルに値を設定しても画面に出ないような感じですね。
そこまで問題の場所が絞れているなら、ファイルの値をチェックの話とか、データベースから値を取ってきているとかいう話はしない方がいいです。余計な情報ですから。
tomoen
会議室デビュー日: 2007/08/30
投稿数: 2
投稿日時: 2007-08-30 22:57
ダッチさん、YASさん、一郎さん
レスありがとうございました。

引用:


FileSystemWatcher.SynchronizingObjectプロパティにFrom1を設定する必要があります。

SynchronizingObject = From1



このとおりに記述したらうまく出てくれるようになりました。
ありがとうございました。

引用:

タイトルからすると、値は取れてきているのにラベルに値を設定しても画面に出ないような感じですね。
そこまで問題の場所が絞れているなら、ファイルの値をチェックの話とか、データベースから値を取ってきているとかいう話はしない方がいいです。余計な情報ですから。



すいませんでした。今後は気をつけます。

1

スキルアップ/キャリアアップ(JOB@IT)