- PR -

タブブラウザのAxWebBrowserの名前の決定

投稿者投稿内容
未記入
大ベテラン
会議室デビュー日: 2005/08/25
投稿数: 145
投稿日時: 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ってプロパティがあるのですが、読み取り専用でだめです。
で、よみとってみたら、文字なしでした。

ご存知のかた教えていただけると嬉しいです。
なおこ(・∀・)
大ベテラン
会議室デビュー日: 2004/04/08
投稿数: 174
お住まい・勤務地: 東京都
投稿日時: 2005-08-25 15:31
お世話になります。

タブに一つしかWebBrowserコントロールを
貼り付けないのであれば,TabPageの名前→TabPage.Controlsで辿っていけるんでは
と思うのですが,もしかして,とんちんかんな事言ってますか?

もし,WebBrowserコントロールにどうしても
名前をつける必要があるのなら,
WebBrowserを継承してオーバーライドするとかでしょうか…。
未記入
大ベテラン
会議室デビュー日: 2005/08/25
投稿数: 145
投稿日時: 2005-08-25 15:40
>TabPage.Controlsで辿っていける

聞き捨てならねえっす。
よろしければ、
Controlsのあとになんて書けば操れるんでしょうか?

例えば、そのAxWebBrowserを指定して、ホームページを表示させたいときなどは。
ちょっと、ここまで聞くのってずうずうしいですかね?
教えていただければ嬉しいです。

>WebBrowserを継承してオーバーライド
に関しては
AxSHDocVw.AxWebBrowser awbire = new AxSHDocVw.AxWebBrowser("namedayo");
ってことでしょうか?
間違ってたらすいません。
これであれば、試しました。
そしたら、そこのかっこは引数を指定できないそうです。
オーバーロードはありませんとかなんとか、言われちゃいました。
そこのかっこは空欄しか駄目みたいです。
なおこ(・∀・)
大ベテラン
会議室デビュー日: 2004/04/08
投稿数: 174
お住まい・勤務地: 東京都
投稿日時: 2005-08-25 16:26
お世話になります。
引用:

未記入さんの書き込み (2005-08-25 15:40) より:
聞き捨てならねえっす。


すみません……

引用:

よろしければ、
Controlsのあとになんて書けば操れるんでしょうか?

例えば、そのAxWebBrowserを指定して、ホームページを表示させたいときなどは。
ちょっと、ここまで聞くのってずうずうしいですかね?
教えていただければ嬉しいです。


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


引用:

>WebBrowserを継承してオーバーライド
に関しては
AxSHDocVw.AxWebBrowser awbire = new AxSHDocVw.AxWebBrowser("namedayo");
ってことでしょうか?
間違ってたらすいません。
これであれば、試しました。
そしたら、そこのかっこは引数を指定できないそうです。
オーバーロードはありませんとかなんとか、言われちゃいました。
そこのかっこは空欄しか駄目みたいです。



確かに。
私はもっとベタな方法で考えてました。
こんな感じです。(また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
投稿数: 145
投稿日時: 2005-08-25 16:34
ありがとうございます。こんなによくしていただいて嬉しいです。

VBがんばって解読します。
未記入
大ベテラン
会議室デビュー日: 2005/08/25
投稿数: 145
投稿日時: 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読み間違えでしょうか?
なおこ(・∀・)
大ベテラン
会議室デビュー日: 2004/04/08
投稿数: 174
お住まい・勤務地: 東京都
投稿日時: 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");
}

}
nodera
大ベテラン
会議室デビュー日: 2003/09/08
投稿数: 200
投稿日時: 2005-08-26 09:53
こんにちは。

引用:

未記入さんの書き込み (2005-08-25 19:39) より:
TabPage tp = new TabPage("fffffff");

<中略>
webTab.fffffff.Controls.Navigate(rrr, ref yt, ref yt, ref yt, ref yt);

これで、やったら、fffffffが宣言されていないためコンパイルエラーです。
もしかしたら、VB読み間違えでしょうか?



オブジェクト(コントロール)の変数名と、オブジェクトが持つNameプロパティの意味を混同してませんか?(さらにTabPageのコンストラクタの引数に指定するのは、Textプロパティの値ですが)
最初の質問に「コントロールの名前」とありますが、これはどちらのことを指しているのでしょう?

ちなみに、TabPageのNameプロパティは、読み取り専用ではなかったはずです。
それともWebBrowserコントロールのNameプロパティってことでしょうか?

スキルアップ/キャリアアップ(JOB@IT)