2016-06-13 29 views
-1

Visual Basicでプログラミングしています。 私は1つのフォームを持っています。個々のリストボックス項目を別のテキストボックスに書き込み、すべてのテキストボックスがいっぱいになるまで繰り返します。

フォーム1が含まれています nameTextBox addNameButton namesListBox generateButton

week1TextBox week2TextBox week3TextBox week4TextBox

ユーザーが1を形成し、テキストボックスに名前を入力し、追加するために行く必要がありますリストボックスの名前ユーザーはリストボックスに4つの名前を追加します。 ListBoxには、Adam、Brenda、Carolという名前が含まれます。

generateButtonをクリックすると、3つの名前をテキストボックスにその順序で書き込む必要があります。したがってweek1TextBoxには "Adam"、week2TextBoxには "Brenda"などが含まれていますが、姓(この場合は "Carol")がテキストボックスに書き込まれると、ループが開始されます。最終的には、最大50週間のテキストボックス(したがってweek50TextBox)が存在する可能性があります。だから、ループは繰り返し何度も繰り返す必要があります。

+0

宿題?それにかかわらず、SOコミュニティの助けを借りるために、これまでに作成しようとしたコードを含めることをお勧めします。 – SpencerD

+0

ここでは、問題を解決しようとしているときに遭遇した特定の問題を解決するために、コードを提供するのではなく、最初に解決する必要はありません。あなたはいつもそうしなければならないので、プログラミングの問題であることを忘れて始めてください。ペンや紙でこの作業を行うための指示を書かなければならない場合は、それをすることができますか?もちろん可能です。それはどんなプログラミング経験もしません。それでは、やってみてください。作業が完了したら、それらの命令を実装するためのコードを書くことができます。 – jmcilhinney

答えて

0

あなたの質問にソースコードがないので、レイアウトがどのように見えるか正確にはわかりません。私はいくつかのアドバイスや提案しか提供できません。

リストボックスコントロールの作成、テキストボックスの入力、リストボックスに名前を追加するボタンをお勧めします。これらに加えて、スクロール可能なパネルも追加します。 (そのコントロールの正確な用語がVB.netにあるのはわかりませんが、私はその言語で作業して以来長い時間がかかりました。)パネルにはさまざまな項目があるようですユーザーが名前のリストを生成するために行く、私は以下のラフな擬似コードを使用します。

Dim OutputTexts As New ArrayList ' This is only here if you want to work with these textboxes later 
Private Sub CreateOutput() Handles btnGenerate.Click 
    pOutputPanel.Controls.Clear() 
    OutputTexts.Clear() 
    Dim NextX As Integer = 0 ' Pretty much unnecessary value, but included in case you want to mess with this 
    Dim NextY As Integer = 0 
    For i As Integer = 0 To Convert.ToInt32(txtWeekCount.Text) 
     Dim txtName As New TextBox 
     txtName.Text = lbNameList.Item(i Mod lbNameList.Items.Count) 
     txtName.Location = new Point(NextX, NextY) ' Play with this as necessary 
     NextY += 50 ' Play with this as necessary 
     OutputTexts.Add(txtName) 
     pOutputPanel.Controls.Add(txtName) 
    Next 
End Sub 

はやはり、これは非常に多くの擬似コードであるので、私はコピー&ペーストを奨励するが、それに読み取りを与える、確認することはないだろうあなたはそれをすべて理解してから、同様のものを実装しようとします。簡単な方法があるかもしれませんが、私はおそらく2年以上(少なくとも)VB.NETでプログラミングしていません。それにもかかわらず、ここで最も重要なのは次の行です:lbNameList.Item(i Mod lbNameList.Items.Count)Mod - インデックス変数を順番にアクセスしてから、ListBoxアイテムコレクションの先頭から一度iが範囲外になると繰り返します。

また、50個以上のTextBoxコントロールを手動で追加するのではなく、必要に応じてTextBoxコントロールを動的に生成することをお勧めします。

関連する問題