C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: VBのInputBoxについて


(過去ログ 36 を表示中)

[トピック内 12 記事 (1 - 12 表示)]  << 0 >>

■18213 / inTopicNo.1)  VBのInputBoxについて
  
□投稿者/ yah (1回)-(2008/05/11(Sun) 10:00:23)

分類:[.NET 全般] 

はじめまして。yahです。

社会人となりまだ1ヶしか経っていなくわからないことだらけなので、質問させていただきたいと思います。

今、社内研修でVB.NETの研修をしているのですが、InputBoxの「キャンセル」ボタンの使い方について
わからないことがあるのでどなたか教えてください。

InputBoxで何かを入力するとき、「OK」・「キャンセル」ボタンがあると思います。

その「キャンセル」ボタンを押したときにプログラムをデバッグさせたときの初期画面に戻したいのですが、
「キャンセル」ボタンを押すと、そのような処理がされなく「""」が入り途中終了することができません。

初心者でも分かるような簡単なサンプルをいただけないでしょうか。
分かりにくい質問内容で申し訳ございません。

以上、よろしくお願いいたします。

引用返信 編集キー/
■18214 / inTopicNo.2)  Re[1]: VBのInputBoxについて
□投稿者/ επιστημη (973回)-(2008/05/11(Sun) 10:08:24)
επιστημη さんの Web サイト
> その「キャンセル」ボタンを押したときにプログラムをデバッグさせたときの初期画面に戻したいのですが、
> 「キャンセル」ボタンを押すと、そのような処理がされなく「""」が入り途中終了することができません。

VBよぉわからんのですけど、
「InputBoxの結果が""のとき初期画面に戻す」処理を書けばいいんじゃないかと。

引用返信 編集キー/
■18216 / inTopicNo.3)  Re[2]: VBのInputBoxについて
□投稿者/ 鶏唐揚 (89回)-(2008/05/11(Sun) 10:38:47)
No18214 (επιστημη さん) に返信
>その「キャンセル」ボタンを押したときにプログラムをデバッグさせたときの初期画面に戻したいのですが、
>「キャンセル」ボタンを押すと、そのような処理がされなく「""」が入り途中終了することができません。
キャンセルで""が入ってくるのはInputBoxの仕様です。
InputBoxを使うとしたら、επιστημηさんの言う方法をとるしかないです。

もしデータとして""が入力される可能性がある場合、InputBoxは使えないので
フォームで独自に入力ダイアログを作ったほうが良いかも。
引用返信 編集キー/
■18222 / inTopicNo.4)  Re[1]: VBのInputBoxについて
□投稿者/ やじゅ (354回)-(2008/05/11(Sun) 11:45:28)
やじゅ さんの Web サイト
No18213 (yah さん) に返信
> InputBoxで何かを入力するとき、「OK」・「キャンセル」ボタンがあると思います。
> その「キャンセル」ボタンを押したときにプログラムをデバッグさせたときの初期画面に戻したいのですが、
> 「キャンセル」ボタンを押すと、そのような処理がされなく「""」が入り途中終了することができません。
>

まず、やりたいことキーワードにして検索してみてください。
検索することも立派な勉強になります。
もちろん、掲示板で質問することも勉強の一つです。
質問の仕方など回答がもらえる質問やもらえない質問があり、
その違いは何かなど学ぶところはいろいろあります。

「InputBox Cancel VB.net」で検索しました。

こんな感じかな? 動作未確認
参考:http://www3.diary.ne.jp/user/319495/

Function InputXXX(ByRef result As String) As Boolean
 Dim s As String
 s = InputBox("cancel test")
 If s Is Environ(255) Then
  'cancel
  Return Flase
 Else
  'MsgBox(String.Format("input = ""{0}""", s))
  result = s
  Return True
 End If
End Function

引用返信 編集キー/
■18233 / inTopicNo.5)  Re[1]: VBのInputBoxについて
□投稿者/ はつね (661回)-(2008/05/11(Sun) 15:26:48)
はつね さんの Web サイト
No18213 (yah さん) に返信
> その「キャンセル」ボタンを押したときにプログラムをデバッグさせたときの初期画面に戻したいのですが、

デバッグさせたときの初期画面ってどのような状態すか?
デバッグする寸前のプログラムを開始する直前の状態とは違うのですよね?
また、exeファイルをビルドしてからexeファイルを起動しているときに開発環境の画面を表示したいのとも違うのですよね?

引用返信 編集キー/
■18240 / inTopicNo.6)  Re[2]: VBのInputBoxについて
□投稿者/ yah (2回)-(2008/05/11(Sun) 20:16:13)
No18214 (επιστημη さん) に返信
>>その「キャンセル」ボタンを押したときにプログラムをデバッグさせたときの初期画面に戻したいのですが、
>>「キャンセル」ボタンを押すと、そのような処理がされなく「""」が入り途中終了することができません。
>
> VBよぉわからんのですけど、
> 「InputBoxの結果が""のとき初期画面に戻す」処理を書けばいいんじゃないかと。
>

返信ありがとうございます。

""というのはスペースで入力したものと一緒なのですか?
スペース入力と同じならば、他の方法を考えないといけません><
初歩的なことで申し訳ないです。
引用返信 編集キー/
■18241 / inTopicNo.7)  Re[3]: VBのInputBoxについて
□投稿者/ yah (3回)-(2008/05/11(Sun) 20:17:44)
No18216 (鶏唐揚 さん) に返信
> >その「キャンセル」ボタンを押したときにプログラムをデバッグさせたときの初期画面に戻したいのですが、
> >「キャンセル」ボタンを押すと、そのような処理がされなく「""」が入り途中終了することができません。
> キャンセルで""が入ってくるのはInputBoxの仕様です。
> InputBoxを使うとしたら、επιστημηさんの言う方法をとるしかないです。
>
> もしデータとして""が入力される可能性がある場合、InputBoxは使えないので
> フォームで独自に入力ダイアログを作ったほうが良いかも。

返信ありがとうございます。

フォームで独自に入力ダイアログを作るとは具体的にどういうことでしょうか?

引用返信 編集キー/
■18242 / inTopicNo.8)  Re[2]: VBのInputBoxについて
□投稿者/ yah (4回)-(2008/05/11(Sun) 20:20:54)
No18222 (やじゅ さん) に返信
>>InputBoxで何かを入力するとき、「OK」・「キャンセル」ボタンがあると思います。
>>その「キャンセル」ボタンを押したときにプログラムをデバッグさせたときの初期画面に戻したいのですが、
>>「キャンセル」ボタンを押すと、そのような処理がされなく「""」が入り途中終了することができません。
> >
>
> まず、やりたいことキーワードにして検索してみてください。
> 検索することも立派な勉強になります。
> もちろん、掲示板で質問することも勉強の一つです。
> 質問の仕方など回答がもらえる質問やもらえない質問があり、
> その違いは何かなど学ぶところはいろいろあります。
>

返信ありがとうございます。

InputBoxのキャンセルボタンについての検索の仕方については「VB.NET InputBox キャンセルボタン」で検索していましたが
なかなかヒットしませんでした。他の方法でもしましたが・・・・・

一応ネットで調べてみたいと思いますが、検索の仕方でコツなどおありでしたら教えていただけないでしょうか?
引用返信 編集キー/
■18243 / inTopicNo.9)  Re[4]: VBのInputBoxについて
□投稿者/ Azulean (105回)-(2008/05/11(Sun) 20:23:42)
> ""というのはスペースで入力したものと一緒なのですか?
""というのは何もない入力されていない状態を示す文字列です。
要するに、キャンセルされたことと、何も入力せずにOKを押したことが区別できません。

> フォームで独自に入力ダイアログを作るとは具体的にどういうことでしょうか?
新しいフォームを作って、テキストボックスやOK、キャンセルボタンを配置して、入力された内容やOK/キャンセルの状態を返すようにコードを書いて下さい。
引用返信 編集キー/
■18244 / inTopicNo.10)  Re[2]: VBのInputBoxについて
□投稿者/ yah (5回)-(2008/05/11(Sun) 20:25:36)
No18233 (はつね さん) に返信
> ■No18213 (yah さん) に返信
>>その「キャンセル」ボタンを押したときにプログラムをデバッグさせたときの初期画面に戻したいのですが、
>

> デバッグする寸前のプログラムを開始する直前の状態とは違うのですよね?
>


返信ありがとうございます。

> デバッグさせたときの初期画面ってどのような状態すか?

デバックを実行したときに出る最初のフォームです。
プログラムを開始する直前の状態にあたると思います。
フォームにSTARTボタンを作ってあるのですが、それを押すとプログラムが開始されます。

> また、exeファイルをビルドしてからexeファイルを起動しているときに開発環境の画面を表示したいのとも違うのですよね?

これについては初心者なもので全く意味がわかりません><
個々の言葉の意味については調べてみます。

引用返信 編集キー/
■18246 / inTopicNo.11)  Re[3]: VBのInputBoxについて
□投稿者/ やじゅ (356回)-(2008/05/11(Sun) 21:25:23)
やじゅ さんの Web サイト
No18242 (yah さん) に返信
> InputBoxのキャンセルボタンについての検索の仕方については「VB.NET InputBox キャンセルボタン」で検索していましたが
> なかなかヒットしませんでした。他の方法でもしましたが・・・・・
>

おかしいですね、そのキーワードでGoogleでもYahooでもすぐに見つかりましたけど。
見る観点が違うのでしょうか?
完全なコードを見つけようとするのは駄目ですよ




引用返信 編集キー/
■18247 / inTopicNo.12)  Re[3]: VBのInputBoxについて
□投稿者/ 魔界の仮面弁士 (723回)-(2008/05/12(Mon) 09:15:45)
2008/05/12(Mon) 09:35:19 編集(投稿者)

No18240 (yah さん) に返信
> ""というのはスペースで入力したものと一緒なのですか?

スペースというのは、
 Dim s As String = Space(1)
で得られる値の事でしょうか? であれば違います。


InputBox で、何も入力せずにOK を押した場合、その戻り値は
"" (長さゼロの文字列)となります。空白文字すら含まれません。

一方、キャンセルが押された場合の戻り値は、
 VB6: vbNullString (ゼロアドレスの文字列: StrPtr 関数の戻り値が 0 になる文字列)
 VBScript: Empty (未初期化バリアント: VarType 関数の戻り値が vbEmpty になる文字列)
 VB.NET: "" (長さゼロの文字列)
が返されます。

VB.NET では、「キャンセル」と「空データでのOK」を区別できません。
(16bit 版VB も区別できなかったかも)

両者を区別する必要である場合には、InputBox を使用する代わりに、
フォームで入力画面を自作する事を検討してみてください。
# 既に回答がついている String 参照の一致性で判定する方法を否定するわけでは
# ありませんが、それは保証されない手法ですし。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -