Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
Elseについて
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=11003#CommentId24414
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
魔界の仮面弁士
 (社会人)
投稿日時
2012/8/12 20:47:06
説明して頂いた内容からすると、
>> こうするとWebBrowserが最初から表示されてしまいます。
という状況というのは、
(1) DocumentComplted のコードが実行されたとしても実行されなかったとしても、
WebBrowser1 の Visible がそもそも True になってるため、表示されている。
(2) WebBrowser1 自体はデザイン時に非表示に設定しているが、
DocumentCompleted の条件分岐のコードで Else 句が実行されており、
「Me.WebBrowser1.Visible = True」によって表示されてしまう。
のいずれかであると推測しています。
デザイナの段階で、WebBrowser1 の Visible を True にしているか False にしているのかは
流石に把握しておられるでしょうから、(1) ということは考慮しておりません。そのため、ここでは
(2) の可能性についての調査が必要と思い、デバッグ手法について説明した次第です。
> Ifの後の○は
> ですw
もっと単純に、これでは駄目でしょうか。
If
WebBrowser1.Document.Body.InnerText
Like
"*アメーバIDもしくはパスワードを確認して下さい*"
Then
> その後どうしればいいのですか?
どう知れば良いか…と言われても、単に InnerText プロパティが返す値を調べるだけですよ。
そしてその内容が意図したものであるかを確認する、と。
提示の If 文が、どの URL に対して、何のための処理を目的として記述されたものなのかという
肝心な『コードの意図』が説明されていないため、現在のコードが適切なのかどうかは
掲示板を見ている第三者には分かりません。動作確認はご自身で行い、判断するしかないわけです。
そもそも Else 句に行ってしまうという事は、If 側の条件にヒットしなかったということですから、
・自身で意図した通りに If 判定が行われているのかを確認せねばならない。
・If 判定で確認しているのは、InnerText で得られる文字列の内容である。
・故にその文字列が、具体的にはどういうテキストになっているのかを確認する必要がある。
という事になります。
どんな値が返ってくるのかを調査できるのは、実際にそのコードを実行可能なだるさんさんだけです。
(どうしたいのかが説明されていない以上、どうすべきかという具体的な提案を回答することもできません)
もしも期待する文字列が返っているにも関わらず、If ではなく Else に行ってしまうようであれば、
If に書いた条件式が間違っているはずなので、御自身が意図する結果となるように
コードを見直してみてください。たとえば、半角全角の間違いなどがあるかも知れません。
あるいは「表示する」「表示しない」の二択ではなく、リクエストされる内容に応じて、
「表示する」「表示しない」「Visible を変更しない」の三択が必要なのかもしれませんし、
もしかしたらご自身で気づいていなかった、全く別の InnerText が得られているのかも知れません。
それと、DocumentCompleted が複数回呼び出されていないかどうかも
確認しておいた方が良いでしょう。
たとえば、一回の Navigate 処理で 2 回の DocumentCompleted が発生しており、
・1回目のイベントで返された InnerText は、条件に合致せずに「.Visible = False」となった。
・2回目のイベントで返された InnerText は、条件に合致したため「.Visible = True」となった。
のように、If と Else の両方が実行されていたとすれば、処理順によっては
WebBrowser が表示されることも表示されないこともありうるわけです。