• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VB(ビジュアルベーシック)のコード)

VB(ビジュアルベーシック)で苗字や名前、住所などの情報を入力し、自動的にメッセージフォームを表示する方法

このQ&Aのポイント
  • 学校の課題でVBを使って苗字や名前、住所などの情報を入力し、自動的にメッセージフォームを表示する方法について困っています。
  • 課題の要件は、(1)苗字、名前、住所などのテキストボックスを作成すること、(2)4つのラジオボタンを作成すること、(3)全てのテキストボックスとラジオボタンにバリデーションルールを設定すること、(4)全ての情報を入力し終わったらボタンを使わずに自動的にメッセージフォームを表示することです。
  • 現在、バリデーションルールでラジオボタンのコードを書いていますが、プログラム起動時にメッセージフォームが表示されてしまい困っています。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

>バリデーションルール 最初、ひとつずつ、イベントをつけるのかと思いましたが、Validation という語は、どうやらキーワードだということが分かりました。そうしないと、コントロール配列という話に結びきませんね。もうちょっとヒントを書いても良いような気がします。 >全て自動的にメッセージフォームを表示させなきゃいけない それは、TextBox のどれかが、空欄かどうかっていうことでしょう。 当面、TextBox だけに設定します。RadioButton も同じように設定してください。 '-------------------------------------------   Private MyTextBoxes As System.Windows.Forms.TextBox()   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load     Me.MyTextBoxes = New TextBox(5) {}     Me.MyTextBoxes = New System.Windows.Forms.TextBox() _       {Me.TextBox1, Me.TextBox2, Me.TextBox3, Me.TextBox4, Me.TextBox5, Me.TextBox6}     Dim i As Integer     For i = 0 To 5       'Me.MyTextBoxes(i) = Me.Controls("TextBox" & (i))       AddHandler MyTextBoxes(i).Validating, AddressOf MyTextBoxes_validating     Next   End Sub   Private Sub myTextBoxes_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles TextBox1.Validating     Dim cTextBox As TextBox = TryCast(sender, TextBox)     Dim n As String     If cTextBox.Text = "" Then       Select Case cTextBox.Name         Case "TextBox1" : n = "Family Name"         Case "TextBox2" : n = "First Name"         Case "TextBox3" : n = "Address"         Case "TextBox4" : n = "Town"         Case "TextBox5" : n = "State Name"         Case "TextBox6" : n = "ZipCode"         Case Else : n = ""       End Select       MessageBox.Show("Pleae fill in " & n)       cTextBox.Select()     End If   End Sub '------------------------------------------- >If MrRadioButton.Checked = False And MsRadioButton.Checked = False And _ > MrsRadioButton.Checked = False And DrRadioButton.Checked Then > MessageBox.Show("One of the four salutations must be selected ", "Error", _ > MessageBoxButtons.OK, MessageBoxIcon.Exclamation) >プログラム起動と同時にメッセージフォームがあがってくるので困っています Form1_Load に入れれば、当然、そうなるのは言うまでもないでしょうね。 それに、RadioButton は、ひとつしか選ばれないのですから、4つのひとつが選ばれたということは論理的に、ヘンです。ひとつだけで十分のはずです。 こちらと同じように、インスタンスに対して、   MessageBox.Show(cRdioButton.Name &" was selected") というようにすれば良いです。 そのままでは、 "One of the four salutations must be selected " って、意味がよくわかりません。[4つの挨拶]のひとつというのですか?salutation から思いつく単語って、appellation ぐらいではないでしょうか。 なお、ほとんど基礎的なことしか分からないのでしたら、TextBox など、ひとつずつにイベントを設けても良いと思います。

その他の回答 (1)

  • ShowMeHow
  • ベストアンサー率28% (1424/5027)
回答No.1

>(3)全てのテキストボックス、ラジオボタンにバリデーションルールを使う のあとに、続けてすべてのコントロールの値がセットされていたらどうこうするというのを続けて書けばよいのでは?

関連するQ&A