- PR -

DataGridで一部の行もしくは列を固定してスクロールできないようにするには?

1
投稿者投稿内容
yokota
会議室デビュー日: 2006/05/01
投稿数: 6
投稿日時: 2006-05-22 17:24
お世話になっております。


現在、DataGridを拡張したコントロールを作成しており、その中で「DataGridをスクロールしたときに一部の行もしくは列を固定してスクロールできないようにする」という機能を実現したいのですが・・・。

DataGridをスクロールする毎にDataSetの内容を書き換える、という無理矢理な方法を検討したのですが、思ったとおりに動作いたしません。
(描画に時間がかかる、というかDataSetの内容を書き換えている時点で問題外?)


もし、いい方法をご存知の方がおりましたらご教示くださいますようお願いいたします。


開発環境:VB.NET - .NET Framework 1.1


#どうやら.NET Framework 2.0では「DataGridView」というコントロールで実現可能らしいですね。
http://msdn2.microsoft.com/ja-JP/library/ms171628.aspx
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-05-22 17:36
引用:

yokotaさんの書き込み (2006-05-22 17:24) より:

#どうやら.NET Framework 2.0では「DataGridView」というコントロールで実現可能らしいですね。


確か 1.x でも、FlexGrid for .NET ならばできますね。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
R・田中一郎
ぬし
会議室デビュー日: 2005/11/03
投稿数: 979
投稿日時: 2006-05-22 18:22
引用:

yokotaさんの書き込み (2006-05-22 17:24) より:

現在、DataGridを拡張したコントロールを作成しており、その中で「DataGridをスクロールしたときに一部の行もしくは列を固定してスクロールできないようにする」という機能を実現したいのですが・・・。



自分でそういうコントロールを作っているということでしたら、DataGridを2段重ねして左下にズラしてみるとか・・・

引用:

yokotaさんの書き込み (2006-05-22 17:24) より:

#どうやら.NET Framework 2.0では「DataGridView」というコントロールで実現可能らしいですね。
http://msdn2.microsoft.com/ja-JP/library/ms171628.aspx



Frozenプロパティのことですかね。僕はよく使っています。
dotnetmemo
常連さん
会議室デビュー日: 2006/04/29
投稿数: 24
投稿日時: 2006-05-22 21:22
FYI

http://www.dotnetmonster.com/Uwe/Forum.aspx/dotnet-vb/21828/Freeze-Column-in-DataGrid
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2006-05-22 22:13
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=4813&forum=7
yokota
会議室デビュー日: 2006/05/01
投稿数: 6
投稿日時: 2006-05-23 00:08
じゃんぬねっとさん、R・田中一郎さん、dotnetmemoさん、Jittaさんありがとうございます。

結論はまだ見出せてないですが、とりあえずお礼とご報告まで。

引用:

R・田中一郎さんの書き込み (2006-05-22 18:22) より:

自分でそういうコントロールを作っているということでしたら、DataGridを2段重ねして左下にズラしてみるとか・・・


う〜ん・・・やはり多少無理矢理な方法を使わないとできないということですかね。

いっそのこと、DataGridのPaintをオーバーライドして描画部分を全部自分で作った方がいいのかもしれないですね。かなり面倒くさそうですが。

引用:

dotnetmemoさんの書き込み (2006-05-22 21:22) より:
FYI

http://www.dotnetmonster.com/Uwe/Forum.aspx/dotnet-vb/21828/Freeze-Column-in-DataGrid


コードを流し読みしてみましたが、DataGrid上にPanelを配置する方法ですね。参考にしたいと思います。

引用:

Jittaさんの書き込み (2006-05-22 22:13) より:
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=4813&forum=7


説明不足ですみません。ASP.NETではなく、Windowsアプリケーションに関する質問でした。
1

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