#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 なのよー'' 」って指示してやる必要があるの。