#freeze
[[.NET]]

方法はいろいろあると思うけど、まず「なんのイベントが発生するか」よね。~
これがないと、クリックしても反応しませんって事になっちゃうもの。

* 使用イベント [#w1b3e499]

まず、 ''MouseDown'' はダメ。たとえば以下かな?

- DoubleClick : ダブルクリック。でもListboxでダブルクリックってちょっと変よね。
- PreviewMouseUp : わたしはここで取得しているわね。

DownでなくUpなのは、経験上、Downで選ぶと選択したものがちゃんともらえない事があったからかな。Up以降なら選択したものはたぶん確定してるだろうって事。

この、Previewなんとかっていうのがいいみたいね。

ちなみに、実際の処理はこんな感じかな。

 private void lb2_PreviewMouseUp(object sender, MouseButtonEventArgs e)
 {
   try
   {
    string url = Regex.Replace((string)lb2.SelectedItems[0], @"^.+>http", "http", RegexOptions.IgnoreCase);
     web1.Navigate(url);
   }catch(Exception exx){
     tb3.Text = exx.Message;
   }
 }


変なデータが飛んできた時にそなえて、エラー処理もつけてみたわ。

余計な処理が入っているけど、ポイントはわかるかしら?

 (string)listBox1.SelectedItems[0]

ここね。

stringでキャストしているのは、listBoxの中に入れられるのは string ばかりじゃないからよ。だから「 ''これは string なのよー'' 」って指示してやる必要があるの。

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS