MW211 EXIT

devlog
VB.net/実行ファイル名を変更
2015年05月12日
「bin\Release」もしくは「bin\Release」に生成される実行ファイル名を変更する方法。

もちろん、生成後に直接変更しても問題ないのだが、
最初からそのファイル名にするには。

「MyProject/アプリケーション」で「アセンブリ名」を
名づけたい実行ファイル名(拡張子は不要)にする。
分類:VB.net
VB.net/デバッグログ
2015年05月11日
【ダイアログに表示】
┌──────────────────┬───────────────────┐
│MsgBox                              │ダイアログに出力                      │
│MessageBox.Show                     │                                      │
└──────────────────┴───────────────────┘
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
【出力ウインドウに表示】
┌──────────────────┬───────────────────┐
│System.Diagnostics.Debug.Write      │出力ウィンドウに改行しないで出力      │
│System.Diagnostics.Trace.Write      │                                      │
├──────────────────┼───────────────────┤
│System.Diagnostics.Debug.WriteLine  │出力ウィンドウに改行して出力          │
│System.Diagnostics.Debug.Print      │                                      │
│System.Diagnostics.Trace.WriteLine  │                                      │
│System.Diagnostics.Trace.Print      │                                      │
├──────────────────┼───────────────────┤
│System.Diagnostics.Debug.WriteIf    │条件付きで                            │
│System.Diagnostics.Trace.WriteIf    │      出力ウィンドウに改行しないで出力│
├──────────────────┼───────────────────┤
│System.Diagnostics.Debug.WriteLineIf│条件付きで出力ウィンドウに改行して出力│
│System.Diagnostics.Trace.WriteLineIf│                                      │
└──────────────────┴───────────────────┘
  ※「.Debug.」はDebug時のみ出力(「.Trace.」はReleaseでも出力)
  ※出力ウインドウは「Ctrl+Alt+O」で表示できる
  ※イミディエイトウィンドウに出力されている場合は
    「ツール>オプション>デバッグ>全般」の
    「□出力ウィンドウの文字をすべてイミディエイトウィンドウにリダイレクトする」
    のチェックを外す
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
分類:VB.net
VB.net/ダイアログ定数
2015年05月10日
【アイコン表示】
┌───────────────────┬──────────────────┐
│MessageBoxIcon.None                   │アイコンなし                        │
├───────────────────┼──────────────────┤
│vbInformation                   (=64)│情報アイコン                        │
│MsgBoxStyle.Information               │[i]白地に青文字○                  │
│MessageBoxIcon.Information            │                                    │
│MessageBoxIcon.Asterisk               │                                    │
├───────────────────┼──────────────────┤
│vbExclamation                   (=48)│警告アイコン                        │
│MsgBoxStyle.Exclamation               │[!]黄地に黒文字△                  │
│MessageBoxIcon.Exclamation            │                                    │
│MessageBoxIcon.Warning                │                                    │
├───────────────────┼──────────────────┤
│vbCritical                      (=16)│エラーアイコン                      │
│MsgBoxStyle.Critical                  │[×]赤地に白文字○                  │
│MessageBoxIcon.Error                  │                                    │
│MessageBoxIcon.Hand                   │                                    │
│MessageBoxIcon.Stop                   │                                    │
├───────────────────┼──────────────────┤
│vbQuestion                      (=32)│疑問アイコン                        │
│MsgBoxStyle.Question                  │[?]白地に青文字○                  │
│MessageBoxIcon.Question               ※非推奨(曖昧なので上記いずれかで代用)│
└───────────────────┴──────────────────┘
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
【ボタン表示】
┌───────────────────┬──────────────────┐
│MsgBoxStyle.OkOnly               (=0)│[OK]                                │
│MessageBoxButtons.OK                  │                                    │
├───────────────────┼──────────────────┤
│MsgBoxStyle.OkCancel             (=1)│[OK]・[キャンセル]                  │
│MessageBoxButtons.OKCancel            │                                    │
├───────────────────┼──────────────────┤
│vbYesNo                          (=4)│[はい]・[いいえ]                    │
│MsgBoxStyle.YesNo                     │                                    │
│MessageBoxButtons.YesNo               │                                    │
├───────────────────┼──────────────────┤
│vbYesNoCancel                    (=3)│[はい]・[いいえ]・[キャンセル]      │
│MsgBoxStyle.YesNoCancel               │                                    │
│MessageBoxButtons.YesNoCancel         │                                    │
├───────────────────┼──────────────────┤
│vbRetryCancel                    (=5)│[再試行]・[キャンセル]              │
│MsgBoxStyle.RetryCancel               │                                    │
│MessageBoxButtons.RetryCancel         │                                    │
├───────────────────┼──────────────────┤
│vbAbortRetryIgnore               (=2)│[中止]・[再試行]・[無視]            │
│MsgBoxStyle.AbortRetryIgnore          │                                    │
│MessageBoxButtons.AbortRetryIgnore    │                                    │
└───────────────────┴──────────────────┘
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
【ボタン値】
┌───────────────────┬──────────────────┐
│vbOK                             (=1)│OK                                  │
│DialogResult.OK                       │[OK]                                │
├───────────────────┼──────────────────┤
│vbCancel                         (=2)│Cancel                              │
│DialogResult.Cancel                   │[キャンセル]                        │
├───────────────────┼──────────────────┤
│vbYes                            (=6)│Yes                                 │
│DialogResult.Yes                      │[はい]                              │
├───────────────────┼──────────────────┤
│vbNo                             (=7)│No                                  │
│DialogResult.No                       │[いいえ]                            │
├───────────────────┼──────────────────┤
│vbAbort                          (=3)│Abort                               │
│DialogResult.Abort                    │[中止]                              │
├───────────────────┼──────────────────┤
│vbRetry                          (=4)│Retry                               │
│DialogResult.Retry                    │[再試行]                            │
├───────────────────┼──────────────────┤
│vbIgnore                         (=5)│Ignore                              │
│DialogResult.Ignore                   │[無視]                              │
├───────────────────┼──────────────────┤
│DialogResult.None                     │Nothing(モーダルダイアログが継続)   │
└───────────────────┴──────────────────┘
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
【既定ボタン指定】
┌───────────────────┬──────────────────┐
│vbDefaultButton1                 (=0)│一番目のボタンが既定ボタンとなる    │
│MsgBoxStyle.DefaultButton1            │                                    │
├───────────────────┼──────────────────┤
│vbDefaultButton2               (=256)│二番目のボタンが既定ボタンとなる    │
│MsgBoxStyle.DefaultButton2            │                                    │
├───────────────────┼──────────────────┤
│vbDefaultButton3               (=512)│三番目のボタンが既定ボタンとなる    │
│MsgBoxStyle.DefaultButton3            │                                    │
├───────────────────┼──────────────────┤
│vbDefaultButton4               (=768)│四番目のボタンが既定ボタンとなる    │
└───────────────────┴──────────────────┘
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
【モーダル指定】
┌───────────────────┬──────────────────┐
│vbSystemModal                         │システムモーダルにする              │
│MsgBoxStyle.SystemModal               │                                    │
├───────────────────┼──────────────────┤
│vbApplicationModal                    │アプリケーションモーダルにする      │
│MsgBoxStyle.ApplicationModal          │                                    │
└───────────────────┴──────────────────┘
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
【その他】
┌───────────────────┬──────────────────┐
│vbMsgBoxHelp                          │ヘルプ テキスト                     │
│MsgBoxStyle.MsgBoxHelp                │                                    │
├───────────────────┼──────────────────┤
│vbMsgBoxRight                         │右寄せ表示                          │
│MsgBoxStyle.MsgBoxRight               │                                    │
│MessageBoxOptions.RightAlign          │                                    │
├───────────────────┼──────────────────┤
│vbMsgBoxRtlReading                    │右から左へ表示                      │
│MsgBoxStyle.MsgBoxRtlReading          │            (ヘブライ語・アラビア語)│
│MessageBoxOptions.RtlReading          │                                    │
├───────────────────┼──────────────────┤
│vbMsgBoxSetForeground                 │前面に表示                          │
│MsgBoxStyle.MsgBoxSetForeground       │                                    │
├───────────────────┼──────────────────┤
│MessageBoxOptions.DefaultDesktopOnly  │アクティブデスクトップに表示        │
│MessageBoxOptions.ServiceNotification │                                    │
└───────────────────┴──────────────────┘
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
分類:VB.net
VB.net/終了
2015年05月09日
「End」

Cの「exit();」みたいなもの
分類:VB.net
VB.net/return文
2015年05月07日
VB6.0(ExcelVBA)の時代は関数の戻り値をreturn文で返却できなかった。
(関数名に代入する形)
これは、GoSub文のためにreturn文が使用されていたためだ。

VB.netとなってからは、Cなどと同じ様にreturn文で返却できるようになった。
分類:VB.net
VB.net/フォームのサイズを固定化
2015年05月06日
  サイズ変更をできなくする
  ┌───────────────┬─────────────────────┐
  │FormBorderStyle               │FixedSingle                               │
  └───────────────┴─────────────────────┘

  最大化けるボタンを無効にする
  ┌───────────────┬─────────────────────┐
  │MaximizeBox                   │False                                     │
  └───────────────┴─────────────────────┘
分類:VB.net
VB.net/「式が必要です」エラー
2015年05月05日
エラーメッセージ「式が必要です」の原因。

シングルクォーテーションで文字列を囲っていない?
Web系(PHPやjQuery)と混同してやってしまいがちなミス。
分類:VB.net
VB.net/二重起動禁止
2015年05月01日
EXEを二回実行した場合、別々にアプリが起動しないようにする設定。
これを行うと、二回目の実行時に、既に起動済みのフレームにフォーカスがあたるだけで
起動を抑止してくれる。

「My Project/アプリケーションフレームワーク」の設定で
「■単一インスタンスのアプリケーションを作成する」にチェックを入れる。
分類:VB.net
VB.net/自前でエントリポイントを掌握する
2015年04月30日
エントリポイントに何かを仕込みたくて、自前でエントリポイントを作る場合。

まず、「My Project/アプリケーション」にて
既定では有効になっている「アプリケーションフレームワーク」を無効にする。

この時点で、自動生成されるソース(My Project/Application.Designer.vb)の記述が
放棄され、エントリポイント(Main())を自前で定義できるようになる。
#上記に直接何かを書き込んでもよいが、自動生成されるソースなので
  いつ何時上書されて破棄されるか保証がないようなものだ

そして、自前で以下のようなモジュール処理を追加してあげればよい。
┌──────────────────────────────────────┐
│Module Program                                                              │
│    <STAThread()> _                                                         │
│    Sub Main()                                                              │
│        Application.Run(New Formスタートアップ())                           │
│    End Sub                                                                 │
│End Module                                                                  │
└──────────────────────────────────────┘
最低限、「スタートアップフォーム」は自前で起動するようにしてあげた形。

それ以外にも初期処理が必要なのであろが(終了処理も)、
「アプリケーションフレームワーク」でいろいろやってくれているので
これを補完するとなると中々難しい(というかこれ以上は把握できていない)。

結論からいうと、「アプリケーションフレームワーク」は無効にしない方が無難だ。
分類:VB.net
VB.net/デバッグDB環境
2015年04月29日
デバッグ時だけDBの接続先を評価環境にしたい場合。

まず、以下のような部分クラスを用意し、接続文字列を書き換えられるようにする。
┌──────────────────────────────────────┐
│Namespace My                                                                │
│    Partial Friend NotInheritable Class MySettings                          │
│        Friend Sub SetConnectionString(ByVal 接続文字列 As String)          │
│            Me("■■DBConnectionString") = 接続文字列                       │
│        End Sub                                                             │
│    End Class                                                               │
│End Namespace                                                               │
└──────────────────────────────────────┘

そして、適宜それを呼ぶ。
┌──────────────────────────────────────┐
│#If DEBUG Then                                                              │
│    My.Settings.SetConnectionString("Data Source=…(略)")                   │
│#End If                                                                     │
└──────────────────────────────────────┘
設定する内容については、「SetConnectionString」あたりでソースをgrepしてみて
既定の設定方法を探しそれを参考にし、一部を書き換えてあげる感じとなる。

さて、上記をどこに置けばよいかが問題となる。
開始処理に置くのが望ましいので、エントリポイント(Main())が最適だ。
ただ、「アプリケーションフレームワーク」が有効な場合(*1)、
そこは自動生成されるソース(My Project/Application.Designer.vb)の
中となってしまう。

さすがにそこに記述できない(記述はできるが上書される恐れあり)ということで代替案。

この場合、「スタートアップフォーム」に設定されたフォーム(*1)が
まず最初に起動される訳なので、
そこのコンストラクタ(New())に記述してしまえば間違いないだろう。
┌──────────────────────────────────────┐
│Public Class Formスタートアップ                                             │
│    Sub New()                                                               │
│        ' この呼び出しはデザイナーで必要です。                              │
│        InitializeComponent()                                               │
│        ' InitializeComponent() 呼び出しの後で初期化を追加します。          │
│#If DEBUG Then                                                              │
│        My.Settings.SetConnectionString("Data Source=…(略)")               │
│#End If                                                                     │
└──────────────────────────────────────┘

起動からの処理の流れ。
┌──────────────────────────────────────┐
│エントリポイント(Main())  ←★ここに置くか                                  │
│↓                                                                          │
│スタートアップフォーム                                                      │
││コンストラクタ          ←★ここに置く                                    │
││↓                                                                        │
└──────────────────────────────────────┘

*1:いずれも「My Project/アプリケーション」にて設定
分類:VB.net
前へ 1 2 次へ