- PR -

C#のDataGridで行番号を表示する方法について

1
投稿者投稿内容
なおきち
会議室デビュー日: 2004/02/06
投稿数: 5
投稿日時: 2004-05-20 19:09
現在Visual C#で簡単なDBのデータを見るアプリを作っています。
DataGridのDataSourceへはOleDataAdapterでDataSetを作ってバインドしており、テーブルの列名も自動で列ヘッダーに設定されて楽チンなのですが、欲張って行ヘッダに行番号も表示しようと考えました。
そこで、VB6のころは簡単だったから・・・と思いながらいろいろ調べてみたのですが、結局やり方がわからない状態です。。
もし行ヘッダに行番号を表示する方法をご存知の方がいらっしゃいましたらご教授いただけないでしょうか。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-05-20 19:19
 『行ヘッダに行番号』というのがよくわからないのですが、
コード:
+−−−+−−−−−−−
|番 号|データ ・・・
+−−−+−−−−−−−
|  1|・・・
+−−−+−−−−−−−
|  2|・・・


こういう感じ?

それで、VB6の頃は、どうやって表示していました?

 私だったら、データベース側で振ってしまうかな?

SELECT ROWNUM AS "行番号", ・・・
なおきち
会議室デビュー日: 2004/02/06
投稿数: 5
投稿日時: 2004-05-21 10:13
Jittaさんありがとうございます。
私がしたかったのはJittaさんの絵の通りです。説明不足で申し訳ありませんでした。
VB6では、MSFlexGridを使って、FixedCols=1として、そこに値(行番号)を設定していました。(Col=0で参照できたので)
そもそもDataGridをMSFlexGridは違うので比較はできないとは思いますが、MSFlexGridでは固定列が普通の列と同じように扱えたので、C#でも同じようなことができないかと思い調べていました。値をDataSourceで設定している以上、Jittaさんのおっしゃる通りselect文にrownumをつけて、一番左の列の色を変えて行ヘッダーぽくするしかないのでしょうかね・・・。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-05-21 10:44
 あ、列固定ですか。

 これ、かなり苦労します。まず、DataGridを2つ用意します。これで想像つきます?

コード:
+----+ +----+--------
|番号| |列1|列2・・・
+----+ +----+--------
|  1 | |    |
+----+ +----+--------
|  2 | |    |


少し間を開けたのですが、このようにDataGridを横に2つ並べて、「データ表示用」の「たてスクロール」イベントを拾って(これは、スクロールボックスコントロールなどを利用する)、「列ヘッダ用」グリッドの表示位置を調整します。

 「datagrid 列 固定 windows」で検索すると、例が見つかるかもしれません。
#Webアプリなら、例はすぐに出せるのだが
なおきち
会議室デビュー日: 2004/02/06
投稿数: 5
投稿日時: 2004-05-21 11:09
なるほど・・・大変ですね・・
「datagrid 列 固定 windows」で検索してみると、他の会議室でも似たようなスレッドがいくつかありました。
Datagridで横スクロール時の列固定
みなさん同じようなことで悩んでおられるんだなと^^;
とりあえずDataGridにそのような機能がないということがわかりましたので、Jittaさんの方法も含めていろいろ試してみます。
どうもありがとうございました!
1

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