Top > プログラミング > .NET Tips> FlowLayoutPanelに配置されたコントロールの順番を変更する

FlowLayoutPanelに配置されたコントロールの順番を変更する」への評価、コメント

評価

良い / 悪い = 4 / 0 (「良い」の割合 = 1.000 , 人気度 = 0.602

評価する

コメント一覧


通常のコメント
管理人 2009/08/29 (Sat) 01:17:31
> SetChildIndexで、コントロールの順番移動はできますよ。

かなり前にも指摘されていましたが、放置してしまい、申し訳ありませんでした。直しておきます。

通常のコメント
FutoNeko 2009/08/28 (Fri) 13:51:49
Public Sub FlowLayoutPanelControlInsert(ByVal Flow As FlowLayoutPanel, ByVal Control As Control, ByVal newIndex As Integer)
Dim conts As New List(Of Control)

'挿入Indexの位置調整はみ出し防止
If newIndex <= 0 Then
newIndex = 0
End If
If Flow.Controls.Count <= newIndex Then
newIndex = Flow.Controls.Count
'最終行に追加したい場合は
'newIndexをFlow.Controls.Countで指定してもらう
End If

Flow.SuspendLayout()

If Flow.Controls.IndexOf(Control) = -1 Then
Flow.Controls.Add(Control)
End If
Flow.Controls.SetChildIndex(Control, newIndex)

Flow.ResumeLayout()
End Sub
このように書くとうまくいきますね。
このテクニックのやり方のようにせずとも
SetChildIndexで、コントロールの順番移動はできますよ。

通常のコメント
nekomantle 2009/03/5 (Thu) 17:02:26
記事の内容だと、バインディングがうまくいかないので悩んでいたのですが、「SetChildIndex()」を使えばもっと単純にいけそうです。

コメントの投稿

[説明]