ここから本文です

ドロップダウンメニューで選択した数字に応じてテキストボックスの数も変わる

pon********さん

2014/6/2010:18:19

ドロップダウンメニューで選択した数字に応じてテキストボックスの数も変わる

授業でアプリをつくれと丸投げされているプログラミング初心者です。。。

アプリの設定画面をつくりたいのですが、
数を2~10まで選択するドロップダウンメニューがあって、そこで選択した数字に応じてテキストボックスを増やしたいのですが for文の書き方と書く場所がよくわからなくて苦戦してます、、だれか力を貸してくれれば幸いです

また、そのテキストボックスに書かれた情報をセッションストレージで保存したいのですがそれもよくわかってません、教えてください!

閲覧数:
243
回答数:
1

違反報告

ベストアンサーに選ばれた回答

byb********さん

2014/6/2213:01:15

こんにちは


>ドロップダウンメニュー
>セッションストレージ
これってもしかしてhtml?

htmlの場合は
サンプル
<body>
<span id="area">
<input type="text" value="">
<br>
</span>
<select id="s" onchange="s()">
<option selected>1</option>
<option>2</option>
<option>4</option>
<option>6</option>
</select>
<script type="text/javascript">
var ar=new Array(1,2,4,6);
function s(){
var se=document.getElementById("s").selectedIndex;
var k=document.getElementById("s").options[se].text;
for(var i=1;i<k;i++){
var ip = document.createElement("input");
ip.setAttribute("type", "text");
var b=document.createElement("br");
var sp = document.getElementById("area");
sp.appendChild(ip);
sp.appendChild(b);
}
}
</script>
</body>



.net VBの場合
#Form1にComboBox1、Button1を張り付けます。
#ComboBox1.SelectedIndexChangedのなかでTextBoxを作成します。
#作成するTextBoxの高さを決めます サンプルでは40
#ComboBox1で選択された値を取得します ComboBox1.SelectedItem
#ComboBox1で選択された値-1分だけFor分を作成します。
#以下全てFor分の中で指定
*TextBoxクラスの作成
*extBoxの色
*フォントの種類
*位置
*サイズ
*枠
#作成したTextBoxをForm1のコントロールにします。
#作成したTextBoxをリストにAddします。メモリー上にあるだけですので終了すると消えてしまいます。
また、リストは配列より強力ですのでサンプルはリストを採用しました。
#Button1.ClickイベントでリストにAddしてあるTextBoxの値をListBox1に表示


サンプル
Public Class Form1
Private Sub f() Handles MyBase.Shown
ComboBox1.Text = "選択してください。"
ComboBox1.Items.Add(2)
ComboBox1.Items.Add(3)
ComboBox1.Items.Add(4)
ComboBox1.Items.Add(5)
ComboBox1.Items.Add(6)
ComboBox1.Items.Add(7)
ComboBox1.Items.Add(8)
ComboBox1.Items.Add(9)
ComboBox1.Items.Add(10)
Button1.Text = "TextBoxの値表示"
End Sub
Dim ar As New List(Of TextBox) '
'ComboBox1の値が変化した場合のイベント
Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged
Dim h As Integer = 40 '作成するTextBoxの高さ(但しフォントに左右される)
Dim k As Integer = CInt(ComboBox1.SelectedItem) 'ComboBox1で選択された値 CIntは省略可
For i As Integer = 0 To k - 1 'TextBoxの繰り返し作成
Dim txtbx As New TextBox() 'TextBoxクラスの作成 () は省略可
txtbx.BackColor = Color.White 'TextBoxの色
txtbx.Font = New Font("MSゴシック", 16, FontStyle.Bold) 'フォントの種類
txtbx.Location = New Point(20, 50 + i * h) '位置
txtbx.Size = New Size(200, h) 'サイズ
txtbx.BorderStyle = BorderStyle.Fixed3D '枠
Me.Controls.Add(txtbx) 'フォームのコントロールにAddする
ar.Add(txtbx)
Next
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
ListBox1.Items.Clear()
'リストの値を ListBox1に表示
For Each st As TextBox In ar
ListBox1.Items.Add(st.Text)
Next
End Sub
End Class





こんにちは


>ドロップダウンメニュー
>セッションストレージ
これってもしかしてhtml?...

質問した人からのコメント

2014/6/26 17:42:55

笑う 参考になりました!
ありがとうございましたヽ(´▽`)/

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる