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ランキング
-
レコード件数の表示
-
abstract と static を一緒に付...
-
Java初級 引数に適用できません
-
readLine()ではじめから読み直...
-
なぜprotected overrideなのか
-
Google Apps Script で getRang...
-
public static void main (Stri...
-
C# 点の描き方をおしえてくだ...
-
Jakarta POI での、excelのシ...
-
String.containsの反対機能はあ...
-
クラスを継承した際のコード自...
-
C言語での文字列より値を抜き出す
-
StringBufferからStringへキャ...
-
Fileの読み取り専用の解除
-
C# でメソッドに送られてきたOb...
-
Java初心者です、エラーの意味...
-
ArrayList の継承について(初...
-
YYYYMMDD書式の日付に対する適...
-
別クラスのmainメソッドの実行
-
クラスを作るとメソッドの数が...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Java初級 引数に適用できません
-
String.containsの反対機能はあ...
-
なぜprotected overrideなのか
-
Strutsでチェックボックスの値...
-
Google Apps Script で getRang...
-
abstract と static を一緒に付...
-
C# 点の描き方をおしえてくだ...
-
レコード件数の表示
-
public static void main (Stri...
-
StringBufferからStringへキャ...
-
YYYYMMDD書式の日付に対する適...
-
C# でメソッドに送られてきたOb...
-
シェルスクリプトからのJavaメ...
-
C# の ByVal と ByRef について
-
Fileの読み取り専用の解除
-
CSVから読み込んだデータの保持...
-
メソッドの引数に指定されてい...
-
javaに"search"という関数 or ...
-
Javaのメモリの管理
-
Java初心者です、エラーの意味...
おすすめ情報