
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.3
- 回答日時:
数字を登録する際に文字列に変換して 桁数を合わせてみてはいかがでしょう
for n = 1 to 1000
ListBox1.Items.Add( n.ToString().PadLeft(4) )
next
これなら Sortedプロパティが TrueでもFalseでも同じ結果が得られますよ
No.2
- 回答日時:
間違い一箇所発見orz
'誤
'Public Sub Append()
'正
Public Sub Append(Sender As Object, e As System.EventArgs)
'SharpDevelopでOption Strict Onをデフォルトにする方法がわからん。
'調べてないだけだけど。
お探しの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ランキング
-
レコード件数の表示
-
String.containsの反対機能はあ...
-
別クラスのmainメソッドの実行
-
JavaからCへ
-
C# 点の描き方をおしえてくだ...
-
abstract と static を一緒に付...
-
親の親のメソッドを呼ぶには?
-
Java初級 引数に適用できません
-
クラス変数とクラスメソッドを...
-
.get○○Info(); メソッド につ...
-
C# 他のnamespaceにあるメソッ...
-
CSVから読み込んだデータの保持...
-
YYYYMMDD書式の日付に対する適...
-
「タイプ初期化子が例外をスロ...
-
変数名の付け方
-
【JAVA】与えられた金額を貨幣...
-
エクセルVBAで、条件に一致する...
-
VBSでのステートメントの末尾が...
-
今日は こどもの日 で、良い天...
-
複数の変数を宣言する時、同時...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Java初級 引数に適用できません
-
String.containsの反対機能はあ...
-
abstract と static を一緒に付...
-
レコード件数の表示
-
コマンドライン引数のチェック
-
StringBufferからStringへキャ...
-
別クラスのmainメソッドの実行
-
Google Apps Script で getRang...
-
JUnitのテストメソッドごとのメ...
-
なぜprotected overrideなのか
-
C言語での文字列より値を抜き出す
-
Java初心者です、エラーの意味...
-
メソッド宣言の戻り値の型にク...
-
シェルスクリプトからのJavaメ...
-
YYYYMMDD書式の日付に対する適...
-
メソッドの引数に指定されてい...
-
System.out.print
-
クラスを作るとメソッドの数が...
-
Strutsでチェックボックスの値...
-
public static void main (Stri...
おすすめ情報