ラベル vb の投稿を表示しています。 すべての投稿を表示
ラベル vb の投稿を表示しています。 すべての投稿を表示

2013年3月14日木曜日

vbでtextbox使ったときの話

下のような処理を書いててなんか時間かかってて、カーソルも砂時計になるしformも操作できなくなるしなんかおかしいと思ったのね。
Dim txtBox As New TextBox
Dim arry As ArrayList
arry = ArrayList.Synchronized(New ArrayList)
'arryになんか追加する処理
While 0 < arry.Count
    txtBox.text = Convert.ToString(arry(0)) & vbCrLf & txtBox.text
End While
下記の様に修正。
If 0 < arry.Count Then
    Dim str As String = txtBox.text
    While 0 < arry.Count
        str  = Convert.ToString(arry(0)) & vbCrLf & str
    End While
    txtBox.text = str
End If
解決しました。textbox遅いんだ。こいつから毎回出したり入れたりしてたので時間がかかってたのでした。
そういえばjavaやってた時にも同じことで悩んだ気がするorz

2013年3月13日水曜日

null入ってたorz

vbのbyte型の配列使ってて詰まった。
たとえば以下のようなコード
Dim a(10) As Byte
a(0) = 1
a(9) = 1
Dim str As String = Text.Encoding.UTF8.GetString(a)
aの先頭と末尾には1が入るが残りはnullである。しかしデバッガで見ると半角スペースが入っているように見えるので、そこを勘違いしていた。エラーを吐くわけでもないのでどうしようかと...

str.Split(" ")としたかったのだがないものを探しても見つからないのだ。
要素がnullであれば半角スペースに変換するループを書いて対応した。
For i As Integer = 0 To a.Length - 1
    If Nothing = a(i) Then
        a(i) = Text.Encoding.UTF8.GetBytes({" "c})(0)
    End If
Next
 .....備えよう....

2012年10月22日月曜日

vb2010 Application.Restart()とStopWatchクラスを使ってみた


職場でApplication.Restart()を使ったら重複起動チェックに引っかかって2回目以降が起動してくれないのでメモ

初回の再起動では別プロセスで開いてくれるようだが、2回目以降は別プロセスにならない?(詳しい人教えてください)ようで、重複起動チェックに引っかかって再起動してくれなくなった。

そこで重複起動チェックの処理を修正することにしました。


最初はただのif文だったのを以下のように修正。
while UBound(Diagnostics.Process.GetProcessesByName(Diagnostics.Process.GetCurrentProcess.ProcessName)) > 0
thread.sleep(100)
i+=100
if i >3000 then
  exit while
end if
これで前プロセスの終了を3秒だけ待って起動できるようになった。
後でYさんからStopWatch使おうといわれ以下に修正。
Dim _stopWatch As New Stopwatch
_stopWatch.Start()
While  UBound(Diagnostics.Process.GetProcessesByName(Diagnostics.Process.GetCurrentProcess.ProcessName)) > 0
  Thread.Sleep(100)
  If _stopWatch.ElapsedMilliseconds > 3000 Then Exit While
End While
_stopWatch.Stop()

処理の実行時間を計るときは便利そうです。

2012年8月30日木曜日

vb_別のPC環境にてフォームのサイズが変更される

windows7のvisual studio2010で開発していたのですが、別のPCでプロジェクトを開くとFormのSizeが変更されていました。

原因はwindows7の「画面上の文字を読みやすくします」設定が各環境で異なること。
両方の環境で同じ設定にしたら解決しました。

かなり詰まったけどここのおかげで助かった。

解決してみると簡単だなw