Skip to content

Visual Basic.NET いろいろなテクニック8

Posted in Visual Basic .NET, プログラム関係, and 技術メモ


業務アプリで使用できそうなものを五月雨に記録しておく。
まとまるまで待っていると忘れてしまうために・・・。ww

なお、このブログ内に記載しているソースの転載・転用については何も縛りはありません。
ご使用の状況の如何に問わず、作者たる当方は結果についてその責任を一切負いません。ご使用は自己責任の範囲でお願いいたします。

【フォルダ指定用のダイアログを表示する】

データの抽出系でユーザーが任意にフォルダを指定してファイルを保存したい場合があります。
そんな時はファイルをセットする前に「FolderBrowserDialog」でフォルダを指定するように促して、任意に保存させるようにしましょう。

	'FolderBrowserDialogクラスのインスタンスを宣言
	Dim objFolderDialog As New FolderBrowserDialog

	'タイトル部に表示するテキストを指定
	objFolderDialog.Description = "ファイルを出力するフォルダを指定してください。"

	'ルートフォルダを指定する(初期フォルダ)'デフォルトでDesktop
	objFolderDialog.RootFolder = Environment.SpecialFolder.Desktop
	'最初に選択するフォルダを指定する(この場合はC直下を指定)
	objFolderDialog.SelectedPath = "C:\"
	'ユーザーが新しいフォルダを作成できるようにする
	'デフォルト(指定しない場合)はTrue
	objFolderDialog.ShowNewFolderButton = True

	'ダイアログを表示する
	If objFolderDialog.ShowDialog(Me) = DialogResult.Cancel Then
	'キャンセルの場合は処理を抜ける
		Exit Sub
	End If

ファイルに取得したパスをセットするには

	objFolderDialog.SelectedPath & "\" & [ファイル名]

注意:取得したフォルダパスの最後には”\”が付いていないので自分で足す必要がある

【フォームを再描写(更新)を行う】

時間のかかる処理を行っている時、フォームが固まっているように見えたり、残像が残ったりと表示が醜い状態が発生したりします。
そんな時、フォームを更新することによって処理は続いているけどフォームの乱れが直ったり(正常に見える)状態になります。
プログレスバー等で進捗状況を表示する時には役に立ちます。

	Me.Refresh()

★注意点①

処理がループしているところに再描写処理を入れると細かい進捗を確認できますが、処理がその分重くなり再描写する場合としない場合では完了する所要時間がことなる場合があります。

★注意点②

フォーム全体を再描写の対象とすると画面がチラついているように見える場合があります。そんな時には進捗確認用のオブジェクト(プログレスバー等)のみを更新対象とするとチラつきがなくなることがあります。

【TextBoxで複数行入力可能な状態の時に常に最終行の表示を行う】

プログラムの進捗等をTextBoxで知らせたい時に追記式で文字列を書き込むことがあると思います。
ただ、どんどん追記されると最初のTextBoxの表示スペースで間に合わない時があり、結局進捗が確認できない場合があります。
そんな時は常に最終行を表示するようにすると進捗が確認できます。
応用編としては処理に時間がかかるような時に用いることが多々あると思いますので【フォームを再描写(更新)を行う】を挟んでロジックを組んだ方がいいです。
そうしないと、処理が完了した時にいきなり進捗文字列が全部現れて終わってしまい、処理の進捗確認になりません。

	TextBox.SelectionStart = TextBox.Length
	TextBox.ScrollToCaret()

Be First to Comment

    コメントを残す

    メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

    CAPTCHA