- ベストアンサー
VB.NET 2010でConfirmMessageのテキストボックス版を作成する方法
- VB.NET 2010を使用して、Windowsフォーム画面の開発をしている場合、ConfirmMessageのテキストボックス版を作成する方法を教えてください。
- 特定の文字を入力するまで処理を待機する動作を実現したいです。
- TextBoxのValidatingイベントを使用して、フォーカスが抜けないようにする処理を追加し、Timerを使用して待機時間を設定しますが、その後の処理方法がわかりません。教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
ConfirmMessage という言い方を日本人は中々しないと 思うんですよ。既存の確認メッセージって、Messagebox.Show でまとめられてて、呼び出し時の引数でアイコンやボタンが 変わりますからね。メッセージボックスと言った方が通じると 思います。それとももっと別なものなんでしょうか? Messagebox という既存の部品があるのだから、動作は まねた方が良いと思います。確認メッセージというのは 選ばれた選択肢に応じた戻り値を返します。呼び出し側で それを元に条件分岐できるわけです。 戻り値は DialogResult 列挙体でまとめられています。 そのまま使ってしまえばすぐ出来てしまいますが。 質問文では ConfirmMessage の方で何かしようとしている ような説明なので、何がしたいのかよく分からないです。 >「"Y"か"N"が入れられるまではフォーカスが抜けない」 というのは、"Y"か"N"が入れられたらフォーカスを抜け るという事ですか? それならそのタイミングで"Y"が入っているか"N"が入ってるか 見て処理を分ければいいのでは?(Timer要りませんね) 特に悩むような内容がこちらに伝わってきませんでしたが。
その他の回答 (1)
- MARU4812
- ベストアンサー率43% (196/452)
> そして、今回は「マウスを使わない画面」なので、メッセージボックスの類は一切使えません マウス使わなくてもメッセージボックスは使えるけどね。 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Select Case MessageBox.Show("test", "test", MessageBoxButtons.YesNo) Case Windows.Forms.DialogResult.Yes MessageBox.Show("Yes") Case Windows.Forms.DialogResult.No MessageBox.Show("No") End Select End Sub メッセージボックスで"Y","N"押してみたら?
お礼
回答ありがとうございます 試してみました キーボードでもできるのですね! 初めて知りました! 今回は、AVXみたいな画面をwindowsで再現しないとなのでメッセージボックスを出すことも禁止なんです・・・ ありがとうございました
お礼
回答ありがとうございます 説明不足があってすいません MessageConfirm は 「showで、ボタンをはい、いいえにしているメッセージボックス」のことです そして、今回は「マウスを使わない画面」なので、メッセージボックスの類は一切使えません テキストボックスやマスクテキストボックス、フレックスグリッド、タブページ(とファンクションキー)で構成しています DOS画面のようなイメージです >「"Y"か"N"が入れられるまではフォーカスが抜けない」 >というのは、"Y"か"N"が入れられたらフォーカスを抜け >るという事ですか? そのような感じです 「"Y"か"N"が入れられて、エンターを押したら再びMe.Close()処理を行う」にしました "YかNを入れられるまでフォームを閉じる処理を止める"ということにばかり気を取られて、テキストボックスのキーダウンを見逃していました ありがとうございました