No.1ベストアンサー
- 回答日時:
Class Q3897213A
Inherits System.Windows.Forms.Form
Private CustomList1 As New NumericSortedList
Private TextBox1 As New System.Windows.Forms.TextBox
Private Button1 As New System.Windows.Forms.Button
Private Button2 As New System.Windows.Forms.Button
Public Sub New()
Me.Width = 800
Me.Height = 600
CustomList1.Width = 700
CustomList1.Height = 400
CustomList1.Top = 0
CustomList1.Left = 25
TextBox1.Width = 100
TextBox1.Height = 20
TextBox1.Top = 500
TextBox1.Left = 500
Button1.Width = 100
Button1.Height = 20
Button1.Top = 550
Button1.Left = 450
AddHandler Button1.Click,AddressOf Append
Me.Controls.Add(CustomList1)
Me.Controls.Add(TextBox1)
Me.Controls.Add(Button1)
End Sub
Public Sub Append()
CustomList1.Items.Add(TextBox1.Text)
TextBox1.Clear
'SortedをFalseからTrueに変更した時にソートされるらしいので回りくどいけど。
CustomList1.Sorted = False
CustomList1.Sorted = True
End Sub
Shared Sub Main
Dim Q3897213A1 As New Q3897213A
Q3897213A1.ShowDialog
End Sub
End Class
Class NumericSortedList
Inherits System.Windows.Forms.ListBox
Protected Overrides Sub Sort()
'ListBoxはalphabetical sortみたいなので
'MSDN Libraryの記述どおり,Sortメソッドをオーバーライドしたクラスを自作
'ソーティングアルゴリズムの負荷や速度については検討してない。
'何故かこれのバグ取りにかなり時間が掛かったため。基本的なものなはずなんだけどなあ・・・
'デリゲート使えるかもしれないけどよくわからんので放置。
If Me.Items.Count > 1 Then
For i As Integer = 0 To Me.Items.Count - 2
Dim swapped As Boolean = false
Dim current As Integer = Integer.Parse(Me.Items(i).ToString)
For j As Integer = i + 1 To Me.Items.Count - 1
If Integer.Parse(Me.Items(j).ToString) > current Then
For k As Integer = i + 1 To j - 2
Me.Items( k - 1 ) = DirectCast(Me.Items(k),Object)
Next
Me.Items(j - 1) = DirectCast(current,Object)
swapped = True
Exit For
End If
Next
System.Console.WriteLine(swapped)
If swapped = False Then
For k As Integer = i + 1 To Me.Items.Count - 1
Me.Items( k - 1 ) = DirectCast(Me.Items(k),Object)
Next
Me.Items(Me.Items.Count - 1) = DirectCast(current,Object)
End If
swapped = False
Next
End If
End Sub
End Class
No.2
- 回答日時:
間違い一箇所発見orz
'誤
'Public Sub Append()
'正
Public Sub Append(Sender As Object, e As System.EventArgs)
'SharpDevelopでOption Strict Onをデフォルトにする方法がわからん。
'調べてないだけだけど。
No.3
- 回答日時:
数字を登録する際に文字列に変換して 桁数を合わせてみてはいかがでしょう
for n = 1 to 1000
ListBox1.Items.Add( n.ToString().PadLeft(4) )
next
これなら Sortedプロパティが TrueでもFalseでも同じ結果が得られますよ
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【エクセル】並び替えからの並び替え方法 7 2022/07/22 09:46
- Excel(エクセル) 範囲指定をした中で、住所の列をユーザー設定の並べ替えをしたい 3 2022/05/15 13:51
- その他(Microsoft Office) 1の行を固定した上でVBAを用いて日付順に自動並べ替え 2 2022/06/06 15:09
- Excel(エクセル) Googleスプレッドシートの割合の関数と円グラフの並べ替えについて 1 2022/07/22 17:31
- Excel(エクセル) Excel 郵便番号順に並び変えたい 同じ番号が複数あるとき 4 2022/04/28 18:35
- その他(Microsoft Office) Excel 2列分のDATAの並べ替え 1 2023/01/01 17:12
- Excel(エクセル) Excelのソート(並べ替え) 2 2022/05/15 22:54
- Excel(エクセル) エクセルの並び替えについて 5 2022/07/11 00:49
- Excel(エクセル) Excelグラフのラベルオプションの並べ替えは可能ですか。セルの値を最後にしたいのですが。 1 2022/06/05 10:45
- その他(Microsoft Office) エクセルで串刺ししたシートの並べ替えをしたいです 4 2023/02/14 11:59
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Java初級 引数に適用できません
-
Strutsでチェックボックスの値...
-
レコード件数の表示
-
メソッドの引数に指定されてい...
-
public static void main (Stri...
-
Javaの公式メソッドの中身を見...
-
コマンドライン引数のチェック
-
contextってなんですか?
-
シェルスクリプトからのJavaメ...
-
親の親のメソッドを呼ぶには?
-
StringBufferからStringへキャ...
-
Google Apps Script で getRang...
-
オーバーロード、オーバーライ...
-
C# 点の描き方をおしえてくだ...
-
別クラスのmainメソッドの実行
-
javaに"search"という関数 or ...
-
クラスを作るとメソッドの数が...
-
C# 他のnamespaceにあるメソッ...
-
c++のキュー
-
staticのメリット、デメリット
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Java初級 引数に適用できません
-
public static void main (Stri...
-
レコード件数の表示
-
abstract と static を一緒に付...
-
なぜprotected overrideなのか
-
C# 点の描き方をおしえてくだ...
-
コマンドライン引数のチェック
-
String.containsの反対機能はあ...
-
Google Apps Script で getRang...
-
StringBufferからStringへキャ...
-
Java初心者です、エラーの意味...
-
javaに"search"という関数 or ...
-
C# でメソッドに送られてきたOb...
-
YYYYMMDD書式の日付に対する適...
-
メソッド宣言の戻り値の型にク...
-
return new使用時
-
readLine()ではじめから読み直...
-
シェルスクリプトからのJavaメ...
-
Fileの読み取り専用の解除
-
親の親のメソッドを呼ぶには?
おすすめ情報