• 締切済み

Visual C#で・・・。

こんばんは、よろしくお願いします。 たとえば、VBでフォームにLabel1~10をコピーして張り付けると 自動的に、コントロール配列になってこのようなコードを書けますが、 Private Sub Form_Load() Dim i As Integer For i = 0 To 9 Label(i).Visible = False Next i End Sub これを、C#でやろうとすると、自動でコントロール配列にはならないし 同じことができません。 C#でコントロール配列のようなことをするには、どうしたらいいですか? お願いします。

みんなの回答

回答No.2

Labelの配列を作らないといけません。 当然ながら各要素には作成済みのインスタンスが代入されている必要があります。

  • fantasis
  • ベストアンサー率26% (14/52)
回答No.1

Indexを設定してみては。 プロパティにあるはずです。

wakadon
質問者

補足

回答ありがとうございます。 あのー・・・。もしよろしければもう少し具体的に教えていただくと うれしいのですが・・・。 お願いします。

関連するQ&A

  • labelを前面に出したい

    vb6で座標平面を作成するプログラムを作っています。lineやlabelを配列で設置しましたが、 lineが前面に出てしまい、とても見づらいものになってしまいました。labelを前面に出すにはどうしたらよいでしょうか。 (1)lineコントロールを配置し、index=0 (2)labelコントロールを配置し、index=0 (3)(1)と(2)が重なるようにします(label1(0)が前面に出ています)。 (4)以下を実行します Private Sub Form_Load() Form1.ScaleMode = 3 Label1(0).FontSize = 15 Label1(0).FontBold = True Line1(0).BorderWidth = 2 Line1(0).BorderColor = &H80000005 Load Line1(1) With Line1(1) .X1 = 100 .X2 = 100 .Y1 = 0 .Y2 = 200 .Visible = True End With Load Label1(1) With Label1(1) .Left = 98 .Top = 80 .Visible = True End With End Sub (5)label(1)が背面になります。

  • ユーザーコントロールの配列化

    VB.NETのWindowsコントロールライブラリで作成したコントロールをメインになるプロジェクトから動的に呼び出したいのですが、複数のコントロールをボタンで表示非表示を行いたいので、配列化したいと考えているのですが、どのようにすればよいですか? public testControl() as Object Private Sub Form_Load(... testControl(0) = New Test1.Form1 testControl(1) = New Test2.Form1 testControl(2) = New Test3.Form1 ... For i = 0 to 10 testcontrol(i).Location = New Point(0,0) testcontrol(i).Size = New Size(100,100) testcontrol(i).Visible = False Next End Sub 見たいな処理を行いたいと考えています。 ほかによい方法があれば教えてください。

  • Visual Basic 2005 Express Edition の「Button」

    今までVBやってはいたんですが、Microsoft Visual Basic 2005と今まで使っていたVBの違いに困っています・・・。 現在、「ボタンを押すたびにC(変数名)が増え、Cの内容をLabel1に表示」というごく基本的な命令すら書けないです。 Private Sub Button1_Click(略 Dim c As Integer c = c + 1 Label1.Text = c End Sub こう書いて、何度Button1をクリックしてもC(Labelに表示される)が最初の1回しか増えません。 何かもっと書かないといけないことがあるのでしょうか? どうか教えてください。お願いします!

  • Formオブジェクトについて

    Formオブジェクトに関する質問です。 ある関数にフォームオブジェクトを引数として渡してやりたいのですが、何かよい方法はありますでしょうか? 例) Private Sub cmdTest_Click(Index as Integer) Dim frm as Form If Index = 0 then Load_Test(Form 2) Else Load_Test(Form 3) End if End Sub Private Sub Load_Test(frm as Form) frm.Show frm.Label1.Caption = "TEST” End Sub

  • VB6 動的追加コントロールの値変更

    お世話になります。VB6初心者です。 動的追加コントロールの値変更で困っています。 Form3にFrame1をコントロール配列で1つ置いています。 ループ処理でFrame1をループ分LOADし、そのフレームの上にチェックボックスを動的に追加していく処理をしています。この動的に追加したチェックボックスの値の変更ができません。 ちなみに値やキャプションの取得はできます。 どなたかご教授願います。 Private Sub Command1_Click() Dim CHKbox(4) As VB.CheckBox Dim i As Integer For i = 1 To 4 Load Form3.Frame1(i) With Form3.Frame1(i) .Top = Form3.Frame1(i - 1).Top + 450 .Visible = True .Caption = "フレーム" & i End With Set CHKbox(i) = Controls.Add("VB.Checkbox", "CHKbox" & i, Form3.Frame1(i)) With CHKbox(i) .Move 2000, 200, 1300, 180 .Visible = True .Caption = "チェック" & i End With Next MsgBox CHKbox(1).Value  `値の取得は可能ですが CHKbox(1).Value = True   `値の変更ができません End Sub

  • ビジュアルベーシックのお絵かき掲示板

    まったくの初心者です。初歩的な質問で申し訳ありません。 カラーのところでクリックが実行できません。 なぜなのかよくわかりません。お暇なときご教授下さい。  そしてもう一つ質問ですが以下のコードを追加したいの ですがどこに挿入すればいいのですか。 →private sub image_click() ccolor = 7 end sub ここまでのコードを追加したいです。 ーーーーーーーーーーーーーーーーーーーーーーーーーー Private Sub Command1_Click() Form1.Cls End Sub Private Sub Command2_Click() End End Sub Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Form1.DrawWidth = 3 If Button = 1 Then PSet (X, Y), QBColor(ccolor) End If End Sub Private Sub Label1_Click() cccolor = 14 End Sub Private Sub lavel2_click() cccolor = 0 End Sub Private Sub label3_click() ccolor = 9 End Sub Private Sub label4_click() ccolor = 12 End Sub Private Sub label5_click() ccolor = 10 End Sub

  • 文字の点滅

    すいません、VB.Net2003の初心者です。 いろいろ調べたのですが解らないので教えてください。 VB.Net2003 SQLServer2000という環境なんですが Form1に Private Sub Timer1_Tick(・・・ lblMessage.Visible = Not lblMessage.Visible End Sub Private Sub Form1_Load(・・・ Me.Timer1.Start() End Sub と書いて単独で開くとちゃんとメッセージは点滅するのですが、これに Private Sub From1_Activated(・・・ Dim Form2Form As New Form2 Application.DoEvents() Dim strSQL As String Dim intRemainder(4) As Integer Dim i As Integer For i = 1 To 3 strSQL = "SELECT COUNT(TelW) AS RemainderCount " strSQL &= "FROM dbo.ma_Customer " strSQL &= "WHERE (CallDayNo1 IS NULL) AND " strSQL &= "(CallNo" & i & " > 0)" Try cmd = New SqlCommand(strSQL, Cn) intRemainder(i - 1) = cmd.ExecuteScalar Catch ex As Exception Dim strMsg As String = Err.Number & ex.ToString MessageBox.Show(strMsg) End Try cmd = Nothing Next Me.Hide() With Form2Form .lblNo1.Text = intRemainder(0).ToString("#,##0") .lblNo2.Text = intRemainder(1).ToString("#,##0") .lblNo3.Text = intRemainder(2).ToString("#,##0") .ShowDialog() End With Me.Close() End Sub というコードを加えてループ処理を実行している間メッセージを点滅させたいのですが点滅しません。どう書いたら良いのでしょう?

  • 配列を引数で渡したりするには?

    初心者なので困っています。配列をほかのサブルーチンへ渡して、その中で配列の値を書き換えて、上層のルーチンへ渡すにはどうしたらよいのでしょうか? 初心者なので、みなまさまのお知恵を拝借させてください。よろしくお願いします。 Private Sub Print() Dim C_ALL(3) As Integer Dim D_ALL(3) As Integer Data_Set(C_ALL(), D_ALL()) MsgBox(C_ALL() & " " & D_ALL()) '配列内容すべて表示 End Sub Private Sub Data_set(ByRef C_ALL As Integer, ByRef D_ALL As Integer) Dim i As Integer For i = 0 To 4 C_ALL(i) += i D_ALL(i) += i i += 1 Next End Sub

  • クリックされたオプションボタンによって、常時複数のテキストBOXの桁数を変えたい

    掲題の件ですが、クリックされたオプションボタンによって常時テキストの桁数を変えたいのですが、 これを複数の組み合わせで行いたいときはどのsub(form_load等)にどのように記述したらよいでしょうか? 例えば、オプションボタンで3桁、4桁、5桁の選択肢があるとすると、 Private Sub Option1_Click(Index As Integer) Me.text1.MaxLength = 3 End Sub Private Sub Option2_Click(Index As Integer) Me.text2.MaxLength = 4 End Sub Private Sub Option3_Click(Index As Integer) Me.text3.MaxLength = 5 End Sub となりますが、この組み合わせを複数作りたい場合、オプションボタンとテキストboxをコントロール配列にして、 Dim i As Integer For i = 0 to 3 If Option1(i).Value = True Then Me.text(i).MaxLength = 3 ElseIf Option2(i).Value = True Then Me.text(i).MaxLength = 4 ElseIf Option3(i).Value = True Then Me.text(i).MaxLength = 5 End If Next このような形になると思いますが、これですとForm_Loadに貼り付けても常時桁を変えることができません。 どのsubにどのようにコードを記述したらよいか教えていただけたら幸いです。 よろしくお願い致します。

  • VB2010 コードの意味を教えてほしいです。

    VB2010を使って、基礎から勉強中です。 テキストに紹介してあるサンプルプログラムを作っているところですが、 どうしても、わからないところがあります。 乱数を発生させ、こんばんはという文字を、5つのボタンにランダムに表示させて ボタンをクリックして、なんという言葉か当てるゲームです。 その中で、For ~ Nextの中に入力されている内容の意味を 詳しく知りたいです。よろしくお願いします。 Public Class Form1 Private answer As String = "こんばんは" '答え Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load '答えを文字列の配列に変換 Dim moji() As Char = answer.ToCharArray() '文字入れ替え Dim rnd As New Random() '乱数を発生させる For i As Integer = 1 To 10 Dim n1 As Integer = rnd.Next(5) Dim n2 As Integer = rnd.Next(5) Dim m As Char = moji(n1) moji(n1) = moji(n2) moji(n2) = m Next Button1.Text = moji(0) Button2.Text = moji(1) Button3.Text = moji(2) Button4.Text = moji(3) Button5.Text = moji(4) '回答欄を初期化 Label2.Text = "" End Sub Private Sub btns_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click, Button2.Click, Button3.Click, Button4.Click, Button5.Click Dim btn As Button = CType(sender, Button) Label2.Text &= btn.Text btn.Visible = False If Label2.Text = answer Then MsgBox("おめでとう", 0, "正解") ElseIf Label2.Text.Length >= answer.Length Then MsgBox("残念!", 0, "不正解") End If

専門家に質問してみよう