コンボボックスの中身が全部おさまる最適な幅を取得する
結構需要あるんじゃないかと思われる関数です。DropDownWidthにセットしてね。
''' <summary> ''' 対象のコンボボックスアイテム内で最長の文字列のWidthを取得する ''' </summary> ''' <returns></returns> ''' <remarks></remarks> Friend Function gfGetCboItemMaxWidth(ByVal avCbo As ComboBox, Optional ByVal avScrollBarMargin As Integer = 20) As Integer Dim rvRep As Integer = 0 Try With avCbo If .Items.Count > 0 Then For I As Integer = 0 To .Items.Count - 1 '最長の文字列幅をループして取得 rvRep = Math.Max(rvRep, TextRenderer.MeasureText(.Items(I).ToString, .Font).Width) Next 'スクロールバーの横幅を加味 rvRep += avScrollBarMargin End If End With Catch ex As Exception Throw ex Finally gfGetCboItemMaxWidth = rvRep End Try End Function
自作したけど実はプロパティ一発で取れたりして。