- 題名: データグリッドビューとフォームの大きさについて
- 日時: 2012/02/07 5:43:45
- ID: 29782
- この記事の返信元:
- (なし)
- この記事への返信:
- [29784] Re[1]: データグリッドビューとフォームの大きさについて2012/02/07 9:58:29
- ツリーを表示
■No29782に返信(まつたけさんの記事)
> にしたら、フォームに合わせてデータグリッドビューが大きくはなるのですが、
> 今度は大きくなったまま小さくできなくなりました。
手元の環境では再現しませんでした。
実験に使ったのは下記のコードです。
Imports System.Windows.Forms
Public Class Form1
Inherits Form
Private WithEvents dgv As DataGridView
Public Sub New()
InitializeComponent()
dgv = New DataGridView()
dgv.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill
dgv.RowCount = 20
dgv.ColumnCount = 5
dgv.Anchor = AnchorStyles.Top _
Or AnchorStyles.Bottom _
Or AnchorStyles.Left _
Or AnchorStyles.Right
dgv.Size = Me.ClientSize - New Size(32, 32)
dgv.Location = New Point(16, 16)
Controls.Add(dgv)
End Sub
End Class
> もし詳細わかりましたらよろしくお願い致します。
現象を再現可能な最低限のソースコードを提示できますか?
■No29795に返信(まつたけさんの記事)
>>> フォームに合わせてデータグリッドビューが大きくはなるのですが、
>>> 今度は大きくなったまま小さくできなくなりました。
この状況というのは、
(1) フォームを小さくしても DataGridView が小さくならない
(2) フォームを大きくできるが、フォームを小さくできない
のいずれのことでしょうか?
DataGridView には、列幅などに関する幾つかの不具合が知られているため、
先の回答では、私は (1) という意味で読み取っていましたが、
もしも (2) の状況なのだとしたら、Form の設定が
AutoSize = True
AutoSizeMode = GlowOnly
になっているのかも知れません。
> AnchorがTop,Bottom,Left,Right
> AutoSizeColumnsModeがFillは、デザイナのプロパティで設定しまして、
質問の意図が先の (1) という前提で、再度検証してみましたが、
提示いただいたコードを参考に、下記のようにしてみましたが
やはり再現されませんでした。
デザイナ側には一切手を加えていない、まっさらな Form での実験です。
Imports System.Windows.Forms
Public Class Form1
Inherits Form
Private WithEvents dgv As DataGridView
Public Sub New()
InitializeComponent()
dgv = New DataGridView()
dgv.AllowUserToAddRows = False
dgv.Anchor = AnchorStyles.Top _
Or AnchorStyles.Bottom _
Or AnchorStyles.Left _
Or AnchorStyles.Right
dgv.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill
dgv.Location = New Point(16, 16)
dgv.Name = "dgv"
dgv.RowTemplate.Height = 21
dgv.Size = Me.ClientSize - New Size(32, 32)
dgv.TabIndex = 0
Controls.Add(dgv)
dgv.RowCount = 20
dgv.ColumnCount = 50
End Sub
End Class
> AnchorとAutoSizeColumnsModeの部分をデザイナから設定しないで、
> フォームのロード時に設定しても同じでした。
追加設定を行う場合には、Load イベントのほか、
コンストラクタや Shown を使う事も検討してみてください。
http://rucio.cocolog-nifty.com/blog/2011/04/post-f125.html
http://social.msdn.microsoft.com/Forums/ja/vbgeneralja/thread/332ca753-ca43-47b7-b6c6-60bc803e74e5
http://www.atmarkit.co.jp/fdotnet/dotnettips/470formshown/formshown.html
分類:[.NET]
はじめまして。
VB2008Expressを使用して、データグリッドビューを使っています。
フォームの大きさにあわせてデータグリッドビューの大きさを変えたいのですが、
AnchorがTop,Bottom,Left,Right
AutoSizeColumnsModeがFill
にしたら、フォームに合わせてデータグリッドビューが大きくはなるのですが、
今度は大きくなったまま小さくできなくなりました。
もし詳細わかりましたらよろしくお願い致します。