C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[7]: form2からform1


(過去ログ 30 を表示中)

[トピック内 8 記事 (1 - 8 表示)]  << 0 >>

■14162 / inTopicNo.1)  form2からform1
  
□投稿者/ gangan (1回)-(2008/02/12(Tue) 01:35:30)

分類:[.NET 全般] 

はじめまして。
C#のformに関して質問します。

form1,form2とあり、form2のtextboxをダブルクリックしたら、
textboxのtextのurlをform1にあるwebbrowserで表示したいのですが
できません。

webbrowserをpublicにして、参照できるようにしてあるはずですが、
できないです。

どなかたわかる方いらっしゃいましたらお願いします。
引用返信 編集キー/
■14163 / inTopicNo.2)  Re[1]: form2からform1
□投稿者/ επιστημη (821回)-(2008/02/12(Tue) 01:40:31)
επιστημη さんの Web サイト
> form1,form2とあり、form2のtextboxをダブルクリックしたら、
> textboxのtextのurlをform1にあるwebbrowserで表示したいのですが
> できません。

「できません」を説明してください。
どんなコードを書いたのですか?

「できません」だけでは
コンパイルできないのか/実行できないのか さえもわかりません。

引用返信 編集キー/
■14164 / inTopicNo.3)  Re[2]: form2からform1
□投稿者/ gangan (2回)-(2008/02/12(Tue) 01:57:41)
public Form1 pointer;


private void listBox1_DoubleClick(object sender, EventArgs e)
{
try
{
Form1 pointer = new Form1();
string url3 = item.Link.ToString();
pointer.webBrowser1.Navigate(new Uri(url3));          
}
catch
{
}
}

コードはこんな感じです。
先ほどの説明はちょっと間違えましたが、listboxのある文ををダブルクリックしたら、
form1のブラウザーで表示したいです。

コンパイルは通るが、実現できていないという状態です。
引用返信 編集キー/
■14165 / inTopicNo.4)  Re[3]: form2からform1
□投稿者/ επιστημη (822回)-(2008/02/12(Tue) 06:08:24)
επιστημη さんの Web サイト
> private void listBox1_DoubleClick(object sender, EventArgs e)
>         {
>             try
>             {
>                 Form1 pointer = new Form1();
>                 string url3 = item.Link.ToString();
>                 pointer.webBrowser1.Navigate(new Uri(url3));          
>             }
>             catch
>             {
>             }
>         }

ここで新たにnewしたForm1は"今(Form2と共に)画面にある"Form1とは別物です。
だからこいつに何しても今あるForm1には何の変化ももたらしません。

Form2はどうやって表示しましたか?
おそらくForm1のメソッドの中で new Form2() ののち Show したはず。
Form2にForm1型のメンバをひとつ追加し、Showする前にForm1の参照を与えておきます。

class Form1 : Form {
  void なにか() {
    Form2 form2 = new Form2();
    form2.Master = this; // ここでセット
    form2.Show();
    ...
  }
}

class Form2 : Form {
  public Form1 Master; // これ追加
  private void listBox1_DoubleClick(object sender, EventArgs e) {
    try {
      string url3 = item.Link.ToString();
      Master.webBrowser1.Navigate(new Uri(url3)); // ここで参照          
    } catch {
    }
  }
  ...
}

引用返信 編集キー/
■14206 / inTopicNo.5)  Re[4]: form2からform1
□投稿者/ gangan (3回)-(2008/02/13(Wed) 01:02:55)
No14165 (επιστημη さん) に返信

助かりました。
ようやく問題が解決しました。
わざわざ教えていただき本当にありがとうございました。
解決済み
引用返信 編集キー/
■14209 / inTopicNo.6)  Re[5]: form2からform1
□投稿者/ επιστημη (826回)-(2008/02/13(Wed) 05:58:45)
επιστημη さんの Web サイト
> ようやく問題が解決しました。

あるいはもっと直接的に、Form2に起こったイベントをForm1でハンドルするテもあります。
つまりForm1に置いた↓メソッドを直接呼んじまうわけ。
private void listBox1_DoubleClick(object sender, EventArgs e)

解決済み
引用返信 編集キー/
■14210 / inTopicNo.7)  Re[6]: form2からform1
□投稿者/ Jitta on the way (27回)-(2008/02/13(Wed) 07:38:19)
No14209 (επιστημη さん) に返信
>>ようやく問題が解決しました。
>
> あるいはもっと直接的に、Form2に起こったイベントをForm1でハンドルするテもあります。
> つまりForm1に置いた↓メソッドを直接呼んじまうわけ。
> private void listBox1_DoubleClick(object sender, EventArgs e)
>

プライベートなので呼べませんですよ。public にしてください。
解決済み
引用返信 編集キー/
■14212 / inTopicNo.8)  Re[7]: form2からform1
□投稿者/ επιστημη (827回)-(2008/02/13(Wed) 08:41:47)
επιστημη さんの Web サイト
>>つまりForm1に置いた↓メソッドを直接呼んじまうわけ。
>>private void listBox1_DoubleClick(object sender, EventArgs e)
>
> プライベートなので呼べませんですよ。public にしてください。

いやまそぉなんだけど、
Form1がオノレのメソッドをForm2.listBox1のDoubleClickにアタッチすりゃえぇわけで (^^

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -