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

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

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

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

Q&A

解決済

2回答

4904閲覧

VB リッチテキストボックス 色指定

IkumiFukiishi

総合スコア13

VB.NET

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

0グッド

0クリップ

投稿2016/01/15 09:23

リッチテキストボックスの文字をランダムに指定することはできますか?
例えばあか,あお,みどりのうちどれかをクリック毎にランダムに表示させたいです.
アドバイスをお願いします.

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

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

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

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

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

guest

回答2

0

ベストアンサー

普通、赤を押したら赤、青を押したら青にするの一般的だと思うのですが。。、
質問の内容から色をランダムにするのか、赤、青、緑の3色をランダムにするのかが
わからなかったので、両方記載しておきます。(文字ではなく、フォームの色を変更していますので
コード参考にアレンジして頂ければと思います)

色をランダムにする方法

VB.NET

1Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 2 3 Dim rnd As Random = New Random 4 Dim red As Integer = rnd.Next(256) 5 Dim green As Integer = rnd.Next(256) 6 Dim blue As Integer = rnd.Next(256) 7 Me.BackColor = Color.FromArgb(red, green, blue) 8 9 End Sub

赤、青、緑の3色をランダムに判定する方法

VB.NET

1Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 2 3 ' Random クラスの新しいインスタンスを生成する 4 Dim rnd As New System.Random() 5 6 ' 0 以上 2 未満の乱数を取得する(0,1,2がランダムに判定される) 7 Dim iResult As Integer = rnd.Next(2) 8 9 If iResult = 0 Then 10 Me.BackColor = Color.Red '0の時は赤 11 ElseIf iResult = 1 Then 12 Me.BackColor = Color.Blue '1の時は青 13 ElseIf iResult = 2 Then 14 Me.BackColor = Color.Green '2の時は緑 15 End If 16 17 End Sub

投稿2016/01/15 11:08

Qoo

総合スコア1249

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

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

IkumiFukiishi

2016/01/18 00:37

ありがとうございます. 上のコードでリッチテキストボックスの色がランダムに変わるようになりました. しかし,赤色,青色,緑色の3色でランダムにしたいのですが,微妙な色合いがランダムにでてしまい,うまくいきません...
Qoo

2016/01/18 00:54

微妙な色合いってなんでしょうか? どのように実装して、なぜそうなったのかもわからないので ソースコードを載せるなりして頂く方が良いと思います。
IkumiFukiishi

2016/01/18 01:16

すみません. 以下コードです. Public Class Form1 Private Sub colorword1() Dim a() As String = New String() {"あか", "あお", "むらさき"} Randomize() Label1.Text = a(Math.Floor(3 * Rnd())) RichTextBox1.Text = a(Math.Floor(3 * Rnd())) RichTextBox1.SelectionAlignment = HorizontalAlignment.Center End Sub Private Sub colorword2() Dim rnd As Random = New Random Dim red As Integer = rnd.Next(255) Dim green As Integer = rnd.Next(255) Dim blue As Integer = rnd.Next(255) RichTextBox1.ForeColor = Color.FromArgb(red, green, blue) End Sub Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick Me.Timer1.Interval = 1000 * 2 Call colorword1() Call colorword2() End Sub Private Sub Form1_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseClick Select Case e.Button Case Windows.Forms.MouseButtons.Left Call colorword1() Case Windows.Forms.MouseButtons.Right Call colorword1() End Select End Sub Private Sub Button1_MouseDown() Me.Timer1.Start() Call colorword1() End Sub Private Function RGB(p1 As Integer) As Color Throw New NotImplementedException End Function Private Function RGB(p1 As Integer, p2 As Integer, p3 As Integer) As Color Throw New NotImplementedException End Function End Class
IkumiFukiishi

2016/01/18 01:42

赤、青、緑の3色をランダムに判定する方法 で書いてくださったコードを見落としていました. こちらでできました! ありがとうございます.
Qoo

2016/01/18 01:48

一応コメントしておきます。 Dim red As Integer = rnd.Next(255) Dim green As Integer = rnd.Next(255) Dim blue As Integer = rnd.Next(255) ここでそれぞれの色をランダムに取得しているので 赤、青、緑以外も判定されてしまいます。 赤、青、緑の3色で良いなら下記のような感じになると思います。 ご参考まで。 Private Sub Form1_Activated(sender As Object, e As EventArgs) Handles Me.Activated 'フォームがアクティブになるタイミングでタイマースタート Me.Timer1.Interval = 1000 * 2 Me.Timer1.Start() End Sub Private Sub colorword1() 'あか、あお、みどりをランダムに取得 Dim a() As String = New String() {"あか", "あお", "みどり"} Randomize() Label1.Text = a(Math.Floor(3 * Rnd())) RichTextBox1.Text = Label1.Text If Label1.Text = "あか" Then RichTextBox1.ForeColor = Color.Red '0の時は赤 ElseIf Label1.Text = "あお" Then RichTextBox1.ForeColor = Color.Blue '1の時は青 ElseIf Label1.Text = "みどり" Then RichTextBox1.ForeColor = Color.Green '2の時は緑 End If RichTextBox1.SelectionAlignment = HorizontalAlignment.Center End Sub Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick 'タイマーのインターバルごとに再取得 Call colorword1() End Sub
guest

0

リッチテキストボックスで使えるプロパティの詳細は以下URLで確認できます。

RitchTextBoxプロパティ

ランダムに色を変えたいのか、"あか","あお","みどり"の文字をランダムにテキスト表示したいのかがわかりませんが、関連しそうなプロパティは下記の5つくらいでしょうか。

ForeColor:テキスト全体の文字色の設定
BackColor:テキストボックスの背景色の設定
SelectionColor:テキスト内で範囲選択中の文字の文字色の設定
SelectionBackColor:テキスト内で範囲選択中の文字の背景色の設定
Text:テキスト表示する文字列の設定

見当違いでしたらすみません。

投稿2016/01/15 12:05

編集2016/01/15 12:06
jawa

総合スコア3013

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

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

IkumiFukiishi

2016/01/16 06:35

文字の色をランダムに変えたかったです。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問