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も見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語での文字列より値を抜き出す
-
Java初級 引数に適用できません
-
C# 点の描き方をおしえてくだ...
-
レコード件数の表示
-
abstract と static を一緒に付...
-
String.containsの反対機能はあ...
-
privateのメソッドをリフレクシ...
-
Javaのメモリの管理
-
コマンドライン引数のチェック
-
java ジェネリックスに関して
-
C# asp.net HTMLタグのエスケ...
-
Fileの読み取り専用の解除
-
JAVAで放物線を描く
-
Google Apps Script で getRang...
-
StringBufferからStringへキャ...
-
「タイプ初期化子が例外をスロ...
-
エクセルVBAで、条件に一致する...
-
EXCEL VBAにて動的にCheckBOXを...
-
インスタンス参照でアクセスで...
-
新規契約でUQモバイル申し込も...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
レコード件数の表示
-
Java初級 引数に適用できません
-
String.containsの反対機能はあ...
-
abstract と static を一緒に付...
-
下記のリストならno002が含まれ...
-
Google Apps Script で getRang...
-
メソッド宣言の戻り値の型にク...
-
Strutsでチェックボックスの値...
-
StringBufferからStringへキャ...
-
readLine()ではじめから読み直...
-
javaに"search"という関数 or ...
-
なぜprotected overrideなのか
-
C# 点の描き方をおしえてくだ...
-
public static void main (Stri...
-
メソッドの引数に指定されてい...
-
別クラスのmainメソッドの実行
-
YYYYMMDD書式の日付に対する適...
-
C# の ByVal と ByRef について
-
Javaの関数名が長い?
-
Java初心者です、エラーの意味...
おすすめ情報