4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

VB.Net備忘録

Last updated at Posted at 2019-01-24

#VB.NETの備忘録

FORM のイベント

Actived

公式ドキュメントにはフォームがアクティブになった際に発火するとなっているが
アクティブとは何か気になったのでちょっと調べてみました。

アクティブになる条件の仮説
① 画面に表示される
② フォーム内をクリックされる
③ フォーム内のコントロールにフォーカスされる
④ フォーム内の関数が呼び出される

結果としては④以外は発火しました。

文字列操作

文字列の途中で改行する

Enviroment.NewLine

0埋め

  • Strings.Formatを利用する
    Format(“{0:000}”, isn’t) => 3桁で0埋め
    上記方法はString型には使えない

  • String.PadLeft(3, “0”c)

ADO.NETでのSQL発行

  • 発行するSQLに「;」をつけてはいけない

発行されているSQLを実行するとエラーにならないのに、
システムを実行するとエラーになるのはなぜ、、、と悩まされた

コントローラ関連

コントロールを探す

Me.Controls.Find("TextBox1", True)

コンボボックス

  • コンボボックスに表示する値と裏で持つ値を分ける

① コンボボックスに独自クラスを追加する。
Items.addで追加する場合

comboBox.items.add(hogeClass)

コンボボックスの表示はクラスのtoStringを使っているため、
toString関数をオーバーライドし、表示したい項目を指定すれば表示できる。

② sourceに設定する場合

combobox.DataSource = hogeClass.list
ComboBox.DisplayMember = hogeClass.name
comboBox.ValueMember = hogeClass.code

②の場合、
selectedItemのみでなく、selectedValueが使えるので楽チン

プロセスの起動

shellとDiagnostics.Process, ProcessStartInfo

Shell Vs Process.start for executing external application
別記事にして細かく書く予定

色々と細かく制御できるDiagnostics.Processを使うことをここでは推奨されてます。
ただし、他に議論しているところ等を見つけられなかったので、どちらでもいいのかもしれません。

ProcessStartInfoを使って細かく設定することができる

Diagnostics.Process.Start(ProcessStartInfo)

排他制御

Mutex

Mutex.WaitOneで取得。 他のプロセスが取得していればNG.
引数で待機時間を設定可能
使い終わったら、Mutex.ReleaseMutex()で解放

log4netの設定

[log4net] log4netの設定

ハンドリングできなかったエラーのハンドリング

適切に処理されなかった例外をキャッチするには?

logへの変数名やクラス名の出力

‘’’vb
$”{NameOf(hogeClass)}”
‘’’

上記記載により変数名のリファクタリングで同時に変更されるようになる。
また&でつなぐより可読性が高い

STAとMTA

複数スレッドから呼び出せる(スレッドセーフ)か、単一のスレッドのみから呼び出せるものか定義する。
STAとMTAについて

4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?