- - PR -
タブブラウザのAxWebBrowserの名前の決定
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-08-25 14:40
C#でタブブラウザのようなものを作っております。
TabPage tp = new TabPage("abc"); AxSHDocVw.AxWebBrowser awbire = new AxSHDocVw.AxWebBrowser(); awbire.Dock = DockStyle.Fill; tp.Controls.Add(awbire); webTab.TabPages.Add(tp); としましたが、コントロールの名前はどうやって決めたらいいのでしょうか? 後の処理のことを考えるとその都度、その都度、ちがう名前を決められると便利なのです。 Nameってプロパティがあるのですが、読み取り専用でだめです。 で、よみとってみたら、文字なしでした。 ご存知のかた教えていただけると嬉しいです。 | ||||||||||||
|
投稿日時: 2005-08-25 15:31
お世話になります。
タブに一つしかWebBrowserコントロールを 貼り付けないのであれば,TabPageの名前→TabPage.Controlsで辿っていけるんでは と思うのですが,もしかして,とんちんかんな事言ってますか? もし,WebBrowserコントロールにどうしても 名前をつける必要があるのなら, WebBrowserを継承してオーバーライドするとかでしょうか…。 | ||||||||||||
|
投稿日時: 2005-08-25 15:40
>TabPage.Controlsで辿っていける
聞き捨てならねえっす。 よろしければ、 Controlsのあとになんて書けば操れるんでしょうか? 例えば、そのAxWebBrowserを指定して、ホームページを表示させたいときなどは。 ちょっと、ここまで聞くのってずうずうしいですかね? 教えていただければ嬉しいです。 >WebBrowserを継承してオーバーライド に関しては AxSHDocVw.AxWebBrowser awbire = new AxSHDocVw.AxWebBrowser("namedayo"); ってことでしょうか? 間違ってたらすいません。 これであれば、試しました。 そしたら、そこのかっこは引数を指定できないそうです。 オーバーロードはありませんとかなんとか、言われちゃいました。 そこのかっこは空欄しか駄目みたいです。 | ||||||||||||
|
投稿日時: 2005-08-25 16:26
お世話になります。
すみません……
VBで書く事をお許し下さい... Private Const TAB_NAME_01 As String = "abc" 'TabPageとWebBrowserの生成 Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click Dim tp As TabPage = New TabPage(TAB_NAME_01) Dim awbire As AxSHDocVw.AxWebBrowser = New AxSHDocVw.AxWebBrowser awbire.Dock = DockStyle.Fill tp.Controls.Add(awbire) Me.TabControl1.TabPages.Add(tp) End Sub 'TabPage取得。表示 Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click Dim tpage As TabPage Dim br As AxSHDocVw.AxWebBrowser For Each tpage In Me.TabControl1.TabPages If tpage.Name = TAB_NAME_01 Then Exit For End If Next If Not tpage Is Nothing Then For Each c As Control In tpage.Controls If c.GetType Is GetType(AxSHDocVw.AxWebBrowser) Then br = CType(c, AxSHDocVw.AxWebBrowser) End If Next br.Navigate("http://www.google.co.jp") End If End Sub
確かに。 私はもっとベタな方法で考えてました。 こんな感じです。(またVBですみません…) Public Class TestBrowser Inherits AxSHDocVw.AxWebBrowser Private m_name As String Public Shadows Property Name() As String Get Return Me.m_name End Get Set(ByVal Value As String) Me.m_name = Value End Set End Property End Class [ メッセージ編集済み 編集者: なおこ(・∀・) 編集日時 2005-08-25 16:28 ] | ||||||||||||
|
投稿日時: 2005-08-25 16:34
ありがとうございます。こんなによくしていただいて嬉しいです。
VBがんばって解読します。 | ||||||||||||
|
投稿日時: 2005-08-25 19:39
TabPage tp = new TabPage("fffffff");
AxSHDocVw.AxWebBrowser awbire = new AxSHDocVw.AxWebBrowser(); awbire.Dock = DockStyle.Fill; tp.Controls.Add(awbire); webTab.TabPages.Add(tp); ----------------------------------------------------------------- string rrr = "http://www.yahoo.co.jp/"; object yt = null; webTab.fffffff.Controls.Navigate(rrr, ref yt, ref yt, ref yt, ref yt); これで、やったら、fffffffが宣言されていないためコンパイルエラーです。 もしかしたら、VB読み間違えでしょうか? | ||||||||||||
|
投稿日時: 2005-08-25 20:12
お世話になります。
すみません。私がVBで書いたばっかりにご足労をお掛けしてしまいまして… 今、ちょっと手元に環境がないもので、 動作の確認はしていないのですが、 http://www1.mahoroba.ne.jp/~mitt/soft/v2cc.htm ↑で変換してみました。 ----------------------------------------------------------------- private const string TAB_NAME_01 = "abc"; //TabPageとWebBrowserの生成 private void Button5_Click(System.object sender, System.EventArgs) Handles Button5.Clic e) { TabPage tp = TabPage(TAB_NAME_01); AxSHDocVw.AxWebBrowser awbire = AxSHDocVw.AxWebBrowser; awbire.Dock = DockStyle.Fill; tp.Controls.Add(awbire); this.webTab.TabPages.Add(tp); } //TabPage取得。表示 private void Button6_Click(System.object sender, System.EventArgs) Handles Button6.Clic e) { TabPage tpage; AxSHDocVw.AxWebBrowser br; foreach (tpage in this.webTab.TabPages) { if (tpage.Name == TAB_NAME_01) { break; } } if (! tpage == null) { foreach (Control c in tpage.Controls) { if (c.typeof == typeof(AxSHDocVw.AxWebBrowser)) { br = CType(c, AxSHDocVw.AxWebBrowser); } } br.Navigate("http://www.google.co.jp"); } } | ||||||||||||
|
投稿日時: 2005-08-26 09:53
こんにちは。
オブジェクト(コントロール)の変数名と、オブジェクトが持つNameプロパティの意味を混同してませんか?(さらにTabPageのコンストラクタの引数に指定するのは、Textプロパティの値ですが) 最初の質問に「コントロールの名前」とありますが、これはどちらのことを指しているのでしょう? ちなみに、TabPageのNameプロパティは、読み取り専用ではなかったはずです。 それともWebBrowserコントロールのNameプロパティってことでしょうか? |