DataGridコントロールに、String型の変数の値を表示させるには

解決


山野善次郎  2003-06-18 09:26:48  No: 107545

DataGridコントロールに、String型の変数に読み込ませたデータを、
トークン分割して、表示させたいと考えております。
できるのでしょうか?
普通ならば、FlexGridコントロールを使えばよいのでしょうが、
このサイトのどこかで、「DataGridコントロールは、Unicode対応だ」と
読んだ記憶がありまして。表示させたいデータには、ハングルや、SJISに
ない漢字、アラビアの文字が入ってくる可能性があるのです。
VB6(SP5) / Win2000


Say  2003-06-18 13:03:01  No: 107546

トークン分割した一時テーブルを用意すればいいのでは?


山野善次郎  2003-06-19 08:36:08  No: 107547

Say様
ありがとうございます。テーブルというのは、一時的なレコードセットを
用意するという意味で、DataGridコントロールは、そのレコードセットを
連結して表示するということになりますか?
よくわかっていないのですが、レコードセットというのは、
AccessのVBAで、よく使う、Dim rst as Recordsetのレコードセットを
イメージしております。
単純に、トークン分割した配列を、まるで、FlexGridコントロールに
入れるかのごとく、DataGridコントロールには、つっこめないものでしょうか。
そのほうが、難しいのかな?


Say  2003-06-19 12:20:45  No: 107548

>単純に、トークン分割した配列を、まるで、FlexGridコントロールに
>入れるかのごとく、DataGridコントロールには、つっこめないものでしょうか。
一時テーブルはオンメモリでも作成できますが、
Recordsetを使いたくない理由はなんでしょう?
DataGridはDataSourceの使用を前提としてますので、
それをしたくないのなら
いっそXMLに変換してWebBrowserに表示したらどうでしょう?


魔界の仮面弁士  2003-06-20 13:11:38  No: 107549

> このサイトのどこかで、「DataGridコントロールは、Unicode対応だ」と
そういえば、そういう回答をした記憶が…。(^-^;
# このサイトだったかどうかは覚えていないけれど。

> 読んだ記憶がありまして。表示させたいデータには、ハングルや、SJISに
> ない漢字、アラビアの文字が入ってくる可能性があるのです。
例えば、このような結果になればよろしいのでしょうか?
http://www.ocv.ne.jp/~oratorio/junk/image/UnicodeDG.jpeg

この場合、注意しなければいけない事があります。

DataGridは(WebBrowserやリッチエディットなどと違って)、文字ごとにフォントを
変える事ができないため、あらかじめ、「多言語に対応したユニバーサルフォント」を
インストールさせておく必要があるのです。
(ちなみに先のスクリーンショットでは、"Arial Unicode MS"というフォントを使っています)

# 個別に変更できるなら、「日本語部分:MS ゴシック」
# 「韓国語: GulimChe」「アラビア: Courier New」などのように
# 文字ごとに、逐次、置き換えて使うという手もあるのですけれどね。

> 単純に、トークン分割した配列を、まるで、FlexGridコントロールに
> 入れるかのごとく、DataGridコントロールには、つっこめないものでしょうか。
> そのほうが、難しいのかな?
はい。実はその方が難しいのです。(^_^;)

DataGridは、非連結(アンバウンド)での処理に対応していないため、
どうしても「データソース」を作成する必要があります。

で、その中でも最も扱いが簡単なのが、Recordsetでの処理なのです。
# DataSourceBehaviorプロパティを指定したデータソースクラスを
# 指定するという方法もありますが、より煩雑なコーディングが必要です。

で。Recordsetを使う場合のサンプルを書いてみました。
先ほどのスクリーンショットに使ったコードです。参考までに。
http://www.ocv.ne.jp/~oratorio/windev/vb/UnicodeDataGrid.cab


山野善次郎  2003-06-24 08:35:46  No: 107550

Say様
早速のアドバイスありがとうございます。
質問者が掲示板に戻るのが遅くて、お恥ずかしい限りです。
あまりに、的外れなことを質問しているのではと、戻るのが
恐ろしく思えるときもありますね。

>Recordsetを使いたくない理由はなんでしょう?
>DataGridはDataSourceの使用を前提としてますので

FlexGridコントロールのRowとColを指定して、値を入れていくような、
プログラムしか書いた経験がなく、なんとなく敷居が高い気がして
おりました。
幸い、魔界の仮面弁士様も、親切なアドバイスをくださいました。
DataSource(RecordSed)を使う方向で、トライしてみます。


山野善次郎  2003-06-24 08:40:48  No: 107551

魔界の仮面弁士様
サンプルなど含めまして、ありがとうございました。
今、元素表を目の当たりにし、「おおっ」と感嘆したところです。
わくわくしてきました。ソースを見るのが楽しみです。


山野善次郎  2003-06-25 23:55:58  No: 107552

無事にDagaGridコントロールに、変数の内容を表示されることができました。
Say様、魔界の仮面弁士様、ありがとうございました。
DataGridコントロールの使い方に慣れるのがたいへんだ。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加