• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:他フォームのコントロールを直接操作することについて)

他フォームのコントロールを直接操作することについて

D-Matsuの回答

  • ベストアンサー
  • D-Matsu
  • ベストアンサー率45% (1080/2394)
回答No.5

> オーナースレッドが同じなら他フォームのコントロールを直接操作しても問題はない。 確かに「例外要因にならない」って意味では問題ないでしょうが、オーナースレッドが同じ場合とそうでない場合で異なるコードを書くのは徒に混乱を招くだけなので、例外が発生する(=オーナースレッドが別である)ことを前提に書くのが普通でしょうねぇ。 フォームの可搬性とか以前の問題で、状況により例外が発生してしまうようなコードは基本的にNGでしょう。 #例外でトラップする以外にエラーチェックしようがないケースはもちろん除きますが

wormhole
質問者

お礼

回答ありがとうございます。 おっしゃるとおりオーナースレッドと同じかどうかで使い方が違うと混乱の元にしかならないですね。そんな場合分けで使い方を覚えたくもないですし。

関連するQ&A

  • [VB6.0]フォーム上に配置したコントロールのフォントサイズが変えられない

    はじめまして。 VB6.0のアプリケーションウィザードを使用してフォームをいくつか作りました。 ウィザード終了後、これらのフォーム上に配置されたラベルなどのfontプロパティ を操作してフォントサイズを変えたいのです。フォームのデザイン上はフォントサ イズを変えることが出来るのですが、実行すると、"コントロールのfontプロパティ のfontサイズ"ではなく、"フォームのfontプロパティのfontサイズ"で統一されて しまいます。つまり、コントロール毎の値は無視されて、フォームの値で統一され てしまうのです。 exe形式にコンパイルしても同じでした。どこかしらのプロパティをいじるのだと 思うのですが、どなたかわかる方はいらっしゃいますか? よろしくお願いします。 (環境)Windows98SE+VB6.0+SP5.0

  • ACCESSフォームでDB操作するには

    Access2002で、フォームを作ってDBを操作しようと思って、ためしにフォームを作ってみました。 ところが、プログラム開発は10年近く前にやったのが最終で、 オープン系の開発経験が希薄なため、この後がさっぱりわかりません。 一応、クエリを作ってみたりしたのですが、さっぱり・・・。 フォームはDB構造とは、異なる設計にしたので、 ACCESSの解説書にあるような単純な動作を構築することはできません。 VBAを使わないとできないと思うのですが、いまいち書籍の説明がわかりません。 データベースをオープンして、値を処理させて、 ポインタを移動させて、DBに書き込んで、DBをクローズする、汎用機系の処理では、理解が及びません。 一応、SQLの知識はあるつもりだったのですが・・・。 何かこれから先に進めるために、ヒントとなるようなものは無いでしょうか・・。 質問自体が、あいまいで、恐縮してしまいますが、何とか前に進めたいので、どうか、何でもいいので、アドバイスよろしくお願いします。

  • ExcelVBA フォーム表示中にワークシートの更新

    お世話になります。 プロパティがあったかどうかが探せなくての質問です。 ユーザフォーム表示中に、Excelブック(ワークシート)の操作ができるようにしたいのですが、そういったプロパティ?コントロールはどこでしたらいいのでしょうか? ご存知の方、教えてください。 Excel2000

  • カレンダーフォームの操作についてヘルプIII

    カレンダーフォームの操作についてご指導をお願いします。 Access2007 カレンダーコントロール12.0 やりたいこと 開いたカレンダーコントロールフォーム「フォーム名:カレンダーマスター」の任意の日付にコメントを入力、リアルタイム日付表示状態でメモ確認カレンダーとして使いたい。 やったことと「不具合」 「カレンダーマスター」をデザインビューで開いて「プロパティーシート」その他タブの「ヒントテキスト」行に記入する。しかし、起動時にはカレンダーが本日の日付になていましたが、将来の日付を選択してヒントテキストを入力後にフォーム「カレンダーマスター」へ戻すと、本日の日付に戻らず入力した日付表示で本日の日付に戻りません。入力操作(カレンダーマスター → コメント入力日を選択 → デザインビュー → ヒントテキスト入力 → フォームに戻す) おねがい フォーム「カレンダーマスター」を開いた状態でコメントの入力が可能な方法かあればアドバイスをお願いします。可能でなければデザインビューで開いて「ヒントテキスト」行に記入してフォーム「カレンダーマスター」に戻した時に、本日の日付に戻せる方法を教えて下さい。 アドバイスをお願いします。

  • マウスクリック時のフォームについて

    VS2005で勉強中の初心者です。 今実験的につくっているアプリがあるのですが わからないところがあるので質問させて下さい。 今仮にフォーム1とフォーム2があるとして フォーム2はプロパティでTopMostをTrueにしてあるとします。 ここで例えば、フォーム1のコントロールを操作し その後フォーム2のボタン1を押す操作をしたいような場合 フォーム2のボタンを押下しようとクリックしても 最初の1度目ではフォーム2がアクティブな状態になるだけで ボタンを押す行動が実行されません。 フォーム2からフォーム1へ移る場合も同じ状態になります。 どちらのフォームがアクティブな状態だとしても 操作をすぐに受け入れるように作りたいと思って マウスイベントによってフォームの状態を変更するようなものを 書こうと思ったのですが それは遠回りな方法で、本当はフォームのプロパティ等で簡単に 設定できるものなのかもしれないと考え、質問させていただきました。 つたない説明で申し訳ありませんが よろしくお願いいたします。

  • モジュール→コントロールの操作

    VB6で作られたプログラムをVB2008の言語に直しているのですが、あるモジュールから任意のフォーム(Dfrom)上にあるコントロール(Label1)を操作するプログラム?があります [VB6] Dim DForm as form Dform = TextBox1.text DForm!Label1.Caption = Msg これをVB2008で再現しようと思ったのですが、良い方法が見つかりません。 MsgをPublic変数で定義して、フォーム側からLabel1.Caption = Msgとすれば楽にいけるのですが、できるだけ元の形に近い組み方で記述したいので、良い方法をお持ちの方はご享受ください

  • Access2002 フォームを閉じるたびに「このフォームの変更を保存しますか?」と表示される

    度々すみません。 毎度お騒がせの初心者です。 表題のとおり、フォームを閉じる際、フォームの変更を保存しますか?というメッセージが表示され、保存を迫られます。 このフォームは、他のフォームからフィルタをかけて呼び出されるもので、プロパティを広げると、 フィルタ:[特定フィールド]='123456' となっています。 この「123456」が毎回変わるからかな?と思ったりもしているのですが、解決策、回避策がわかりません。 どなたかご教授いただけると幸いです。 よろしくお願いいたします。

  • Access modalフォームからdialogフォームの呼出しについて

    お世話になります。 AccessのVBAはどの分類が適切なのかが分からないのでこちらに投稿させていただきます。 modalフォームAから戻り値を返すdialogフォームB(カレンダーコントロールから日付を取得)を呼出したいのですが、フォームBからフォームAに戻ってきたときにAccess自体が固まってしまします。(フォームAがアクティブになりません。) VB6では同様な仕組みで問題なく動作しているのですが、解決策はありますでしょうか? また、modalプロパティ指定時になにか他のプロパティも設定する必要がありますでしょうか? よろしくお願いします。

  • ACCESSのフォームについて

    いつもお世話になっております。 Accessですでにあるデータベースに新しいマスタを追加し、テーブルに挿入しました。リレーションシップで連結しました。  フォームに新しくそのデータを表示するテキストボックスを作ったのですが、プロパティのコントロールソースに新しいマスタの項目がなく、新しいマスタのデータを表示できません。 新しいマスタを後から追加した場合、もう一度フォームウィザードで作り直す方法しかないのでしょうか? 普通は設計段階でこのようなことがないようにすると思いますが、なにぶん、データベースに関しては初心者なのでこのようなことになってしまいました。 どうぞよろしくお願いします。

  • VB .net コントロールのプロパティ設定方法

    Visual Basic 2010を勉強しています。 フォームに貼り付けたコントロールのプロパティの設定についてですが、 今までは、貼り付けた後にプロパティウインドウで直接いじっていました。 (Text、Font、Imageなど...) ですが、知人が書いたコードを見ていると、コードの中で設定しているようなのです。 プロパティウインドウで設定した方が、視覚的にも確認しながら設定できるのでそうしていたのですが、コード内で設定するのと違いはあるのでしょうか?(パフォーマンスやコードの見やすさなど...) 動的にコントロールを配置したい時や、プロパティを変更したい場合にはコード内で操作しますが、初期設定やラベル等の変更することがないようなコントロールに関しては、どちらでも同じような気がするのですが... 実際に皆さんがどうされているのかも気になり、質問させて頂きました。 以上、何卒よろしくお願いいたします。