質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

Q&A

解決済

1回答

1712閲覧

ビンゴアプリで、乱数を生成後、出た数字に相当するラベルの色を変える方法がわかりません。

Eltk

総合スコア51

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

0グッド

0クリップ

投稿2020/03/06 13:47

先日、以下の質問をした者です。
https://teratail.com/questions/244699?whotofollow=

この質問の続きで、新たに途中で詰まってしまったので、質問させていただきました。

前提・実現したいこと

ビンゴアプリを作っているのですが、乱数を生成後、出た数字がわかりやすいように色を変えたいのですが、
どのようにすればそれが実現するのか、わかりません。
※イメージ写真は0-99までの数字ですが、今回は1-50までの数字での作成を試みています。

該当のソースコード

Visual

1<%@ Master Language="VB" AutoEventWireup="false" CodeBehind="Site1.master.vb" Inherits="bingo.Site1" %> 2 3<!DOCTYPE html> 4 5<html> 6<head runat="server"> 7<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 8 <title></title> 9 <asp:ContentPlaceHolder ID="head" runat="server"> 10 </asp:ContentPlaceHolder> 11</head> 12<body> 13 <form id="form1" runat="server"> 14 <div> 15 <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server"> 16 </asp:ContentPlaceHolder> 17 </div> 18 </form> 19</body> 20</html>

Visual

1<%@ Page Title="" Language="vb" AutoEventWireup="false" MasterPageFile="~/Site1.Master" CodeBehind="top.aspx.vb" Inherits="bingo.top" %> 2<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server"> 3 <link rel="stylesheet" type="text/css" href="../CSS/top.css"> 4</asp:Content> 5<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server"> 6 <div class="parent_container"> 7 <div class="left_container"> 8 <div class="number_wrap"> 9 <div><asp:Label ID="Label1" runat="server" Text="1" CssClass="num"></asp:Label></div> 10 <div><asp:Label ID="Label2" runat="server" Text="2" CssClass="num"></asp:Label></div> 11 <div><asp:Label ID="Label3" runat="server" Text="3" CssClass="num"></asp:Label></div> 12 <div><asp:Label ID="Label4" runat="server" Text="4" CssClass="num"></asp:Label></div> 13 <div><asp:Label ID="Label5" runat="server" Text="5" CssClass="num"></asp:Label></div> 14 <div><asp:Label ID="Label6" runat="server" Text="6" CssClass="num"></asp:Label></div> 15 <div><asp:Label ID="Label7" runat="server" Text="7" CssClass="num"></asp:Label></div> 16 <div><asp:Label ID="Label8" runat="server" Text="8" CssClass="num"></asp:Label></div> 17 <div><asp:Label ID="Label9" runat="server" Text="9" CssClass="num"></asp:Label></div> 18 <div><asp:Label ID="Label10" runat="server" Text="10" CssClass="num"></asp:Label></div> 19 <div><asp:Label ID="Label11" runat="server" Text="11" CssClass="num"></asp:Label></div> 20 <div><asp:Label ID="Label12" runat="server" Text="12" CssClass="num"></asp:Label></div> 21 <div><asp:Label ID="Label13" runat="server" Text="13" CssClass="num"></asp:Label></div> 22 <div><asp:Label ID="Label14" runat="server" Text="14" CssClass="num"></asp:Label></div> 23 <div><asp:Label ID="Label15" runat="server" Text="15" CssClass="num"></asp:Label></div> 24 <div><asp:Label ID="Label16" runat="server" Text="16" CssClass="num"></asp:Label></div> 25 <div><asp:Label ID="Label17" runat="server" Text="17" CssClass="num"></asp:Label></div> 26 <div><asp:Label ID="Label18" runat="server" Text="18" CssClass="num"></asp:Label></div> 27 <div><asp:Label ID="Label19" runat="server" Text="19" CssClass="num"></asp:Label></div> 28 <div><asp:Label ID="Label20" runat="server" Text="20" CssClass="num"></asp:Label></div> 29 <div><asp:Label ID="Label21" runat="server" Text="21" CssClass="num"></asp:Label></div> 30 <div><asp:Label ID="Label22" runat="server" Text="22" CssClass="num"></asp:Label></div> 31 <div><asp:Label ID="Label23" runat="server" Text="23" CssClass="num"></asp:Label></div> 32 <div><asp:Label ID="Label24" runat="server" Text="24" CssClass="num"></asp:Label></div> 33 <div><asp:Label ID="Label25" runat="server" Text="25" CssClass="num"></asp:Label></div> 34 <div><asp:Label ID="Label26" runat="server" Text="26" CssClass="num"></asp:Label></div> 35 <div><asp:Label ID="Label27" runat="server" Text="27" CssClass="num"></asp:Label></div> 36 <div><asp:Label ID="Label28" runat="server" Text="28" CssClass="num"></asp:Label></div> 37 <div><asp:Label ID="Label29" runat="server" Text="29" CssClass="num"></asp:Label></div> 38 <div><asp:Label ID="Label30" runat="server" Text="30" CssClass="num"></asp:Label></div> 39 <div><asp:Label ID="Label31" runat="server" Text="31" CssClass="num"></asp:Label></div> 40 <div><asp:Label ID="Label32" runat="server" Text="32" CssClass="num"></asp:Label></div> 41 <div><asp:Label ID="Label33" runat="server" Text="33" CssClass="num"></asp:Label></div> 42 <div><asp:Label ID="Label34" runat="server" Text="34" CssClass="num"></asp:Label></div> 43 <div><asp:Label ID="Label35" runat="server" Text="35" CssClass="num"></asp:Label></div> 44 <div><asp:Label ID="Label36" runat="server" Text="36" CssClass="num"></asp:Label></div> 45 <div><asp:Label ID="Label37" runat="server" Text="37" CssClass="num"></asp:Label></div> 46 <div><asp:Label ID="Label38" runat="server" Text="38" CssClass="num"></asp:Label></div> 47 <div><asp:Label ID="Label39" runat="server" Text="39" CssClass="num"></asp:Label></div> 48 <div><asp:Label ID="Label40" runat="server" Text="40" CssClass="num"></asp:Label></div> 49 <div><asp:Label ID="Label41" runat="server" Text="41" CssClass="num"></asp:Label></div> 50 <div><asp:Label ID="Label42" runat="server" Text="42" CssClass="num"></asp:Label></div> 51 <div><asp:Label ID="Label43" runat="server" Text="43" CssClass="num"></asp:Label></div> 52 <div><asp:Label ID="Label44" runat="server" Text="44" CssClass="num"></asp:Label></div> 53 <div><asp:Label ID="Label45" runat="server" Text="45" CssClass="num"></asp:Label></div> 54 <div><asp:Label ID="Label46" runat="server" Text="46" CssClass="num"></asp:Label></div> 55 <div><asp:Label ID="Label47" runat="server" Text="47" CssClass="num"></asp:Label></div> 56 <div><asp:Label ID="Label48" runat="server" Text="48" CssClass="num"></asp:Label></div> 57 <div><asp:Label ID="Label49" runat="server" Text="49" CssClass="num"></asp:Label></div> 58 <div><asp:Label ID="Label50" runat="server" Text="50" CssClass="num"></asp:Label></div> 59 </div> 60 61 </div> 62 <div class="right_container"> 63 <div class="num_result_container"> 64 <asp:Label ID="num_result" runat="server" Text="今回の番号は..."></asp:Label> 65 </div> 66 <div class="button_container"> 67 <asp:Button ID="Button1" runat="server" Text="抽選ボタン" CssClass="button" /> 68 </div> 69 </div> 70 </div> 71</asp:Content> 72
Public Class top Inherits System.Web.UI.Page Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load End Sub Private Sub readyArray() Session("Numbers") = New Integer() {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50} Dim Numbers As Integer() = Session("Numbers") Dim rnd As New Random() '配列のシャッフル Dim n As Integer = 50 While n > 1 n -= 1 Dim k As Integer = Rnd.Next(n + 1) Dim tmp As Integer = Numbers(k) Numbers(k) = Numbers(n) Numbers(n) = tmp End While 'シャッフル後の配列を再びセッションに保存 Session("Numbers") = Numbers End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim Numbers As Integer() = Session("Numbers") Dim result As Integer() = Numbers.Take(1) For i = 1 To 50 If i == result Then End If Next End Sub End Class

試したこと

※以前、質問させていただいた際、以下の手順で作ることをアドバイスいただいております。
https://teratail.com/questions/244699?whotofollow=

【手順】
(1) 1 - 50 の数字をシャッフルして配列を作り保存しておく。web アプリはステートレスであることをお忘れなく。保存には Session とか ViewState などを使う必要があります。

(2) 最初のボタンクリックで配列の先頭から、次のクリックでその次から順に数字を配列から取得する。今何番目かも Session とか ViewState に保持する必要があります。

(3) 上記 (2) で取得した数字に該当する Label の色を変える (CssClass とか ForeColor を変える)。

(4) 上記 (2) で保存した「何番目」が配列の最後になるまで繰り返す。


上記の手順をもとに、調べたりしながら進めてみましたが、以下の点で詰まりました。

・「ランダムに出た数字と、Label.Text(具体的には、Label1.Text)が同値であれば、
LabelのForecolorをRedに変える。」というようなことをしたいのですが、
その具体的なコードの書き方がわからず困っております。

※もし可能なら具体的なコードを交えて解説いただければ助かります。
※おそらくなのですが、vbのファイルの書き方が(調べながら継ぎ接ぎで書いたので)めちゃくちゃだと感じております。
ですので、今回の質問以前に指摘事項がたくさんあるかもしれませんが、
その場合は申し訳ございません。

補足情報(FW/ツールのバージョンなど)

統合開発環境
Visual Studio2019
(言語:VB.NET、プロジェクトテンプレート:ASP.NET Webアプリケーション)

使用PC
Windows10

※平日は仕事のため、返信が19:30以降になります。
どうぞよろしくお願いします。

イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

FindControl メソッドで当該 Label を見つけてその CssClass か ForeColor を変えてはいかがですか?

【追記】

質問に書いてある手順 (1) ~ (4) の (3) のやり方がこのスレッドの質問、

出た数字に相当するラベルの色を変える

で、それに対しては上の私のレスが回答になっていますが、質問のコードを拝見すると それ以前に手順 (1), (2) が実装できておらず、はっきり言ってメチャクチャです。(1), (2) を (3) より先に解決しないと、このスレッドの質問は意味がありませんよ。

このスレッドは一旦クローズして、新たに別のスレッドを立てて (1), (2) の実装方法を質問することをお勧めします。

投稿2020/03/06 14:28

編集2020/03/07 01:10
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Eltk

2020/03/07 01:59

かしこまりました。ではこのスレッドはいったんクローズさせていただきます。 ありがとうございます。 FindControl、調べてみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問