人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

VB.NETのデータグリッドの利用方法についてお聞かせください。

(1)a.vbというコードを保存します。(内容はコメント欄を参照)
(2)C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322
上に前項のソースを置いて,

vbc /target:library /reference:"System.Windows.Forms.dll" /reference:"System.dll" /reference:"System.Data.dll" /reference:"System.XML.dll" /reference:"System.Drawing.dll" a.vb

とコンパイルします。

a.dllが生成されます。

(3)Apacheの公開ディレクトリに,前項のa.dllを配置します。
同じフォルダ上に,以下のHTMLを配置します。

hoge.html
----
<html>
<body>
<object id="fuga" height="300" width="300"
classid="a.dll#SampleNameSpace.SampleDataGrid"></object>
</body>
</html>
----

(4)IEで,http://localhost/hoge.html にアクセスします。

(5)データグリッドが表示されてほしかったのですが,
http://f.hatena.ne.jp/language_and_engineering/20100711191940
のような画面が出るだけでした・・・・。


要は,http://d.hatena.ne.jp/language_and_engineering/20100705/p1 のDataGrid版をやりたいのですが,
そのためにa.vbのコード内容をどう修正すべきか,ご教授願えますでしょうか。
よろしくお願いします。

●質問者: lang_and_engine
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:.NET Apache DLL Framework hoge
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● mj99
●60ポイント ベストアンサー

コメント欄掲載のプログラムについて、悪いのはDataTableが初期化されていないところだけのようです。


が、それとは別の問題も、、、


----

■a.vb

Imports System.Data

Namespace SampleNameSpace

 Public Class SampleControl
 Inherits System.Windows.Forms.DataGrid

 Public Sub New()

 Dim dtSet As DataSet = New DataSet("hoge")
 Dim dtTable As DataTable = dtSet.Tables.Add("t_hoge")

 dtTable.Columns.Add("ID", GetType(System.Int32))
 dtTable.Columns.Add("NAME", GetType(System.String))

 dtTable.Rows.Add(New Object() {1, "aaaaaa"})
 dtTable.Rows.Add(New Object() {2, "bbbbbb"})
 dtTable.Rows.Add(New Object() {3, "cccccc"})

 Me.SetDataBinding( dtSet, "t_hoge" )

 End Sub

 End Class

 Public Class SampleForm
 Inherits System.Windows.Forms.UserControl

 Dim ctl As New SampleControl()

 Public Sub New()
 Me.Controls.Add(Me.ctl)
 End Sub

 End Class

End Namespace


■a.htm

<html>
<body>
<object id="fuga1" classid="a.dll#SampleNameSpace.SampleControl"></object>
<object id="fuga2" classid="a.dll#SampleNameSpace.SampleForm"></object>
</body>
</html>


SampleControlクラスをHTMLに貼ってもデータは表示されません。

SampleFormクラスをHTMLに貼るとデータは表示れます。

詳しく調べたわけではありませんが、DataGridクラスは、System.Windows.Forms.ContainerControlの派生クラスの上に貼らないと正しく動作できないようです。

◎質問者からの返答

本当にありがとうございます。ご提示いただいたコードのおかげで,ブラウザ上でDataGridを動作させることができました。いま,動作する実物を見て感動しております。情報が少ないにもかかわらず調査してくださったことを感謝します。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ