トップ回答者
初心者の質問です お願いします

質問
回答
-
星 睦美さん>
> 質問にコードが含まれていませんのでもう一度質問の内容を確認してみてくださいね。
質問に書いてある URL(質問者さんのブログ?)のページからたどっていくと Visual Studio のスクリーンショットのような画像が貼ってあって、それにコードらしきものがあるようです。だた、それを見て回答できるかどうかは疑問ですが。
yuukiuehara さん>質問の仕方がうまくないです。何も分からないからまる投げしているような感じがします。そもそもコンパイルはできているのでしょうか? デバッガの使い方は知っていて、デバッグしてみたのでしょうか?
> 今No.1のタイマーボタン(Buttonボタンで作成)を押したらNo.2を開きたいです。
> 今現在のコードでは開けません。まる投げする気はなくて、上記のところだけが問題で、そこさえ解決できれば良いのであれば、「押したらNo.2を開く」のを実現するための必要最小限のコードに削ってみてください。
その過程で、問題の原因が分かって自己解決できるかもしれません。
自己解決できなくても、そのコード(あくまで必要最低限の)を提示して、何がどのように期待していた動きと違うのかを書くと回答が得やすいと思います。
なお、コードを提示する場合は、自分のブログではなく、このフォーラムにコードスニペットを使ってアップすることをお勧めします。
- 編集済み SurferOnWww 2013年4月25日 2:33 誤記訂正
- 回答の候補に設定 星 睦美 2013年4月26日 4:26
- 回答としてマーク 星 睦美 2013年5月7日 6:54
-
yuukiuehara さま よろしく。
SurferOnWww さまや ひらぽん さまがお書きになっているように、これからは、コードを載せて下さい。
その際に、問題点を再現させる最小限の部分に絞って下さい。
この作業をする事で、問題の把握が出来るようになります。さて、それでは。
先ず、現在のコードは弄らずに、別の名前で新しい Project を作りましょう。No.1 の名前は Form1 ( Form1.vb )、 No.2は Form2 ( Form2.vb ) とします。
Form1 にツールボックス から Button を Form1 に DragDrop して、Button1 の 表示名 を変えます。
Button1 をダブルクリックして、イベントハンドラを作ります。
その中に、
Form2.Show() もしくは Form2.ShowDialog() の一行を加えます。
Show() は同時実行、ShowDialog() は Form2 を閉じないと Form1 に戻れません。
ここで、F5 キーを押して、デバック実行すれば、ご質問の内容が画面で確認出来るはずです。このように、ひとつずつ、ステップを踏んで、悪い所を直して行って下さい。
なお、可能な限り、コード内は全角文字や日本語を使わない事をお勧めします。(文字列や注釈は別)
また、C:\Users\xxx\Visual Studio 2010\Projects\ 配下の該当プロジェクトファイル群を 別のフォルダに(例えば、USBメモリ)バックアップしておく事をお勧めします。
(履歴管理の可能なフォルダ構成にしておく事を、更に、お勧め。)
コードを直してぐちゃぐちゃになった時、元に戻せます。---------------------------------------------------------
kentaro_ さま よろしく。コード拝見しましたが、これでは Form1 を開くと共に、制御は Form2 に移ってしまい、
Form2 を閉じない限り Form1 のボタンは働かないのでは?
すべての返信
-
星睦美さんもおっしゃっていますが、
コードは必要な部分のみを抜き出して、「ここでこんなエラーが出て解決できません。」といった質問方法がより良いかと思います。
リンク先のコードを簡略化して、試してみました。
以下のような感じでForm2の表示が可能かと思います。
Public Class Form1 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load Form2.ShowDialog() End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim bOpen As Boolean For Each fSh As Form In Application.OpenForms If fSh.Name = Form2.Name Then bOpen = True Exit For End If Next If bOpen = False Then 'もともとのコード 'Form2 = Nothing 'Form2 = New Form2 Dim f2 As Form2 f2 = New Form2 f2.Show() End If End Sub End Class
- 編集済み kentahoga 2013年5月7日 8:25 Jittaさんのご指摘を受けてコード修正
-
星 睦美さん>
> 質問にコードが含まれていませんのでもう一度質問の内容を確認してみてくださいね。
質問に書いてある URL(質問者さんのブログ?)のページからたどっていくと Visual Studio のスクリーンショットのような画像が貼ってあって、それにコードらしきものがあるようです。だた、それを見て回答できるかどうかは疑問ですが。
yuukiuehara さん>質問の仕方がうまくないです。何も分からないからまる投げしているような感じがします。そもそもコンパイルはできているのでしょうか? デバッガの使い方は知っていて、デバッグしてみたのでしょうか?
> 今No.1のタイマーボタン(Buttonボタンで作成)を押したらNo.2を開きたいです。
> 今現在のコードでは開けません。まる投げする気はなくて、上記のところだけが問題で、そこさえ解決できれば良いのであれば、「押したらNo.2を開く」のを実現するための必要最小限のコードに削ってみてください。
その過程で、問題の原因が分かって自己解決できるかもしれません。
自己解決できなくても、そのコード(あくまで必要最低限の)を提示して、何がどのように期待していた動きと違うのかを書くと回答が得やすいと思います。
なお、コードを提示する場合は、自分のブログではなく、このフォーラムにコードスニペットを使ってアップすることをお勧めします。
- 編集済み SurferOnWww 2013年4月25日 2:33 誤記訂正
- 回答の候補に設定 星 睦美 2013年4月26日 4:26
- 回答としてマーク 星 睦美 2013年5月7日 6:54
-
星 睦美さんの返信に補足です。
リンク先にコードを掲示しておられますが、可能な限り質問にコードを掲示した方がいいと思います。
質問を見た方が他のサイトを見なくても済むよう配慮すると、フィードバックがより早まる可能性が高くなります。
以下、メーリングリストで質問するコツやマナーを纏めた記事ですが、MSDNフォーラムでも有用と思われますので是非参考にしてください。ひらぽん http://d.hatena.ne.jp/hilapon/
-
yuukiuehara さま よろしく。
SurferOnWww さまや ひらぽん さまがお書きになっているように、これからは、コードを載せて下さい。
その際に、問題点を再現させる最小限の部分に絞って下さい。
この作業をする事で、問題の把握が出来るようになります。さて、それでは。
先ず、現在のコードは弄らずに、別の名前で新しい Project を作りましょう。No.1 の名前は Form1 ( Form1.vb )、 No.2は Form2 ( Form2.vb ) とします。
Form1 にツールボックス から Button を Form1 に DragDrop して、Button1 の 表示名 を変えます。
Button1 をダブルクリックして、イベントハンドラを作ります。
その中に、
Form2.Show() もしくは Form2.ShowDialog() の一行を加えます。
Show() は同時実行、ShowDialog() は Form2 を閉じないと Form1 に戻れません。
ここで、F5 キーを押して、デバック実行すれば、ご質問の内容が画面で確認出来るはずです。このように、ひとつずつ、ステップを踏んで、悪い所を直して行って下さい。
なお、可能な限り、コード内は全角文字や日本語を使わない事をお勧めします。(文字列や注釈は別)
また、C:\Users\xxx\Visual Studio 2010\Projects\ 配下の該当プロジェクトファイル群を 別のフォルダに(例えば、USBメモリ)バックアップしておく事をお勧めします。
(履歴管理の可能なフォルダ構成にしておく事を、更に、お勧め。)
コードを直してぐちゃぐちゃになった時、元に戻せます。---------------------------------------------------------
kentaro_ さま よろしく。コード拝見しましたが、これでは Form1 を開くと共に、制御は Form2 に移ってしまい、
Form2 を閉じない限り Form1 のボタンは働かないのでは? -
ShiroYuki_Mot 様
その点は私も疑問点だったのですが、リンク先のコードがそのようになっていたため、そのままにしています。(できる限りもとのコードを利用した方が、自分のコードと照らし合わせて分かりやすいかと思い・・)
この場合、すぐにForm2が表示されますが、×などで画面消去して、Form1を表示させる必要があります。もしかしたら、ボタンクリックイベントの中で、Form2の存在確認をしていたので、その影響があるのかな?とも思っていました。
--------------------------------------
質問方法を少し変えたほうが良いことは確かですが、今回の質問の場合、Form2を表示しようとしている部分のみを修正することで、質問者様の疑問が解決できるのでないか?と思います。
- 編集済み kentahoga 2013年4月25日 5:49
-
kentaro_ さま そうでしたか。
お分かりの上のご投稿でしたか。でも、きっと、どういう動作になるかはご質問者は理解しておられないかと ... 。 元のソースを拝見する限り、Subroutine の Handle 句が抜け落ちたままだったり、とても動作に耐えられない状態と判断し、ソースの内容は無視し、ご質問の文面を優先しました。
(yuukiuehara さま 失礼な文面ですがご勘弁下さい。)
- 編集済み ShiroYuki_Mot 2013年4月25日 6:54 段落整形
-
Dim f2 As Form2 f2 = New Form2 Form2.Show()
最後、「Form2」ではなく、「f2」ですよね?
今現在のコードでは開けません。
今現在のコードでは開けなくて、“どうなる”のでしょうか。
No.2 の方のコードに青い波下線が引かれている行があります。これ、エラーですよね?ということは、今現在のコードでは「開けません」どころか、「実行できません」ではないでしょうか。
VB6 の頃は、Nothing を放り込めばよきに計らってくれていましたが、VB.NET では、開発者が明示的に「破棄」を指示して下さい。VB6 までの「開発者ではないソフトウェア作成者向けツール」から、「開発者向け、でもソフトウェア作成者にも使えるツール」に進化しています。破棄の方法については、リファレンスを見て下さい。
あと、このままだと、プロジェクトが大変なことになりますよ?タイマーや付箋は、プロジェクトを分けて、実行ファイルを起動させるような作りにする方が良くないですか?
回答はこのページでお願いします。
「このページ」って、どっちでしょう?ここは「情報交換の場」なので、「回答」といわれても、ねぇ。
それと、モデレータさんがお願いを忘れていらっしゃるようですが、「質問の内容がわかるタイトル」への編集をお願いします。
Jitta@わんくま同盟
-
フォーラム オペレーターの星 睦美です。
yuukiuehara さん、投稿ありがとうございます。今回の質問の参考になりそうだと思いましたので、私からスレッドに[回答としてマーク]しています。
回答に引き続き質問がありましたら、遠慮なく[回答としてのマークの解除]をして返信できます。今回はコミュニティの回答者のみなさんから、フォーラムでテクニカルな内容を質問をするためのヒントをたくさんいただきました。また、フォーラムでは最初に質問のタイトルだけを目にしますので短いタイトルで回答者に内容をうまくつたえることも大事ですね。(Jitta さん、ありがとうございます。)今後の投稿の際に参考にしていただければと思います。
それでは引き続きMSDN フォーラムをお役立てください。
日本マイクロソフト株式会社 フォーラム オペレーター 星 睦美