• ベストアンサー

vb.netでのプログラミング

vb.netでフォーム間のやりとりがうまくいきません。 以下のような機能を実現させるにはどうしたらよいでしょうか? form1のボタンAを押したときにform2のボタンをDISABLEにする。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • popesyu
  • ベストアンサー率36% (1782/4883)
回答No.3

親子関係のフォームであれば1、2の方法で管理できますが、兄弟関係であるならマルチスレッドでやる方がお勧めです。 1、2の方法でも呼び出すタイミングなどを工夫すればいけるでしょうが、その場合はDoEventsなどを適度に挟んだりして、共有したフラグで切り替えたりするとか。 でマルチスレッドでの方法は一言では説明しにくいので、参考URLあたりで勉強なさって下さい。

参考URL:
http://www.atmarkit.co.jp/fdotnet/vb6tonet/vb6tonet31/vb6tonet31_03.html
pokepotto
質問者

お礼

たびたびのご回答本当にどうもありがとうございます。 返事が遅くなってしまってすみませんでした。 マルチスレッドというのがあるのですね。 質問の内容を実行するのに色々と検索をしてみたのですが、 キーワードが今ひとつわからずに困っていました。 URLを参考にしてやってみます。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • popesyu
  • ベストアンサー率36% (1782/4883)
回答No.2

formの変数を宣言し、オブジェクトを生成する正しい構文は以下のようになります。 dim subform as form2 subform = new form2()

pokepotto
質問者

お礼

実行してみました。とりあえず、できました。 どうもありがとうございました。 しかし、 はじめにform2が表示された状態で フォーム2のボタンの状態をかえたいのですが・・・ newであたらしいインスタンスを作成すると 別のWINDOWが設定したボタンの状態でひらいています。 FORM1、2とイベントすべてPUBLICの設定にしているのですがうまくいきません。 お知恵をお貸しください。 お願いします。

pokepotto
質問者

補足

たびたびのご回答 ありがとうございました。 とりあえず、今は実行できる環境に いないので、 明日実行してみます(^^)

全文を見る
すると、全ての回答が全文表示されます。
  • popesyu
  • ベストアンサー率36% (1782/4883)
回答No.1

方法はいろいろありますが。 例えばform2を開く前にまずインスタンス化しますよね。その段階でform2ボタンをDISABLE。でform2をshow。

pokepotto
質問者

補足

ご回答ありがとうございます。 返事が遅くなってすみません。 form1,form2を表示させて、form1のボタンAを押したら form2のボタンBをDISABLEにしようと思うんですが、 FORM間の値の受け渡しがうまくいっていないのです。 form1のほうでform2を Dim subform as form2 というふうにインスタンス化し、 その中でsubform.bottunB.enable = 0 とやると、 追加情報 : オブジェクト参照がオブジェクト インスタンスに設定されていません。 とひょうじされてしまいます。 よろしくお願いします。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • VB.NET2008を使用しています。

    VB.NET2008を使用しています。 ----- HTML ----- <input type="submit" name="Enter" value="ボタン"> ----- END ------ ----- 構成@VB ----- Form1 Button1 <- これをクリックしてWebBrowserのボタンを押したことにする WebBrowser1 ----- END ----- 上のようなボタン(HTMLのもの)を VB.NETのButton1を押すとWebBrowser1に表示されているWEBページのボタンを 押したようにしたいのですがどのようにすれば実現できますか? よろしくお願いします。

  • VB.NETでのページセレクト機能

    VB.NETにおいて フォーム上に一覧(グリッド)形式のコントロールを配置して データを一覧表示し、更にページセレクトの機能を持たせたいと 考えています。  ・「前へ」ボタン  ・「次へ」ボタン  ・ページ直接指定ボタン   (検索サイトの結果ページなどによくある、1 2 3 4 5 …) ASP.NETのDataGridコントロールでは実現できそうなのですが、 VB.NETの標準コントロールでも簡単に実現できるものでしょうか? (特別にプログラミングすることなく) できない場合、市販コントロールの採用も止む無しと考えていますが、 そのような製品はありますでしょうか?

  • VB.NETについて

    いつも大変お世話になっています。 VB.NETについてお聞きしたいことがあります。 (VB.NET 未経験者です。) VB.NET でWEBページ作成しようとしているのですが、VBのようなフォーム(Form1.vb というもの)を クライアント側のPCやブラウザに依存せずに表示させることは可能なのでしょうか? 実際、今までそういうページを拝見する機会がなく、又、手元にも 資料が乏しくここに質問させていただきました。 WEBでも検索をかけてみましたが、VB.NETのコードサンプルは見つけることが出来たのですが、 実際にフォームを使用しているWEBサンプルがあればいいな。と思っています。 ご存知の方がいらっしゃればよろしくお願いいたします。

  • VB6.0の「VarPtr」をVB.NETで実現するには?

    VB6.0での「VarPtr(xxxx)」は、VB.NETでは使用できないようですが、 同等の機能を、VB.NETで実現したいのですが、どうすれば良いでしょうか?

  • vb.netは何プログラミングになるのでしょうか?

    パールとかPHPはwebプログラミングというカテゴリーになると思いますが vb.netは何プログラミングになるのでしょうか? フォームプログラミングですか?

  • Vb2010

    vb2010です。 ログインフォーム(Form1)のログインボタン(button1)を押すとログインフォームは消え、メインフォーム(Form2)を表示するという事をしたいです。サンプルコードを教えて下さい。

  • VB6→VB2005移行におけるpopupmenu機能について

    すみません、VB&VB.net初心者です。 VB系の経験が無いのですが、仕事で現行VB6のソースをVB2005版にポーティングすることになり、色々調べながら進めてますが、壁にあたっております。。 現在は、以下の処理で困っています。 <やりたいこと> Form2上で右クリック押下時にポップアップメニュー (別フォーム(Form1)で作成:“右クリックは無効です”)を表示 <VB6ソース> If Button = vbRightButton Then Form2.PopupMenu Form1.mnuPop End If VisualStudio2005のアップグレードウィザードを使用したところ、 「PopupMenuアップグレードされませんでした」となりました。 ヘルプや検索等調べたところ、ContextmenuまたはContextmenustripを使いましょう、 ということのようなのですが、別フォームを呼び出す例が見当たりません。 (書いてあるけどピンとこなく気付かないのかも知れませんが。。) 実現方法をご存じの方おりましたら、ご教授よろしくお願いいたします。

  • VB.Netのフォームロードイベントについて

    こんにちわ。 いまVB.Net2005Expressで勉強をしている者です。 あるフォームがロードされるときの処理を書こうとすると, 従来のVB6ではFormオブジェクトにLoadイベントがありましたが, VB.Net2005では,最初の状態ではフォームのイベントには 「New」,「Finalize」,「InitializeComponent」の3つしかありません。 もしVB.Net2005でForm_Loadイベントを書きたいときは, 自分で, 「Private Sub Form1_Load(Byval ~」と書かなくてはいけないのでしょうか? 初歩的な質問になるかもしれませんが,教えてください。 よろしくお願いします。

  • VB.NETでアクティブなformを知りたい

    VB.NETでform1,2,3を開き 今アクティブなformが1か2か3かを知りたいのですが。 (form1でaに値をセット,form2でbに値セット,form3でアクティブなformnの変数で計算 form1ならaを使いform2ならbを使う)

  • VB2005でのWithEventsについて

    お世話になります、当方現在データベースアプリをVB2005proで作成しているのですが、VB6→VB2005への更新です。 VB6の時は複数プログラムで作成したため、あえて、アップグレードウィザードを使用せずに作成しております(デザインも変更したい為) それで、今回質問させて頂きたいのは、複数のフォームに貼り付けたボタンイベントを同じ処理で分岐できないかどうか教えて頂きたいのです。 具体的にはフォームにボタンを5個ほど用意して。フォームのクリックイベントでF1キーが押されたらButton1_Clickイベント、F2キーが押されたらButton2_Clickイベント などのショートカット機能を実装したいのです。 VB6の場合は共有クラスにWithEventsでForm型を宣言して、Load時にロード元のフォームをWithEventsのフォーム型にセットすればイベントを認識してくれたと思うのですが。同じことを.NETで行っても、イベントをハンドルしてくれませんでした。 .NETでは各フォームイベント毎に記述するしかないのでしょうか? 初心者の質問で申し訳ありませんが、何卒よろしくお願いいたします。