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

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

新規登録して質問してみよう
ただいま回答率
85.50%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Q&A

3回答

15445閲覧

C# テキストボックスに入力した数値の範囲限定

退会済みユーザー

退会済みユーザー

総合スコア0

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

0グッド

0クリップ

投稿2016/04/22 02:12

編集2022/01/12 10:55

迷路を自動生成するものをつくっていて、縦と横の長さ、出入り口の数の数値を入力し
フォーム内に設置したボタンをクリックすると
その数値に応じた長さの線が描画されるようにしているのですが、その数値の範囲を限定させたいのです。

範囲の限定についてですが、
・入力する数値の最大最小を決めて、その範囲外の数字や文字が入力されても実行画面では反応はないようにしたい。
・範囲内の数値が入力されたときのみ応答がある。
・範囲は最小2から最大50まで、出入り口は最小2から最大4までを考えている。

以下は現在のコードです。

private void CreateSoto() { private int tate; private int yoko; private int deiriguti; private int x_start; private int x_end; private int y_start; private int y_end; private Image _img; string s = this.textBox1.Text; string a = this.textBox2.Text; string d = this.textBox3.Text; int result; if (int.TryParse(s, out result)) { tate = result; } if (int.TryParse(a, out result)) { yoko = result; } if (int.TryParse(d, out result)) { deiriguti = result; } //テキストボックス入力で枠線の値を変更 float x_start = (yoko * 20); float y_start = (tate * 20); float y_end = (tate * 20) + 10; float x_end = (yoko * 20) + 10; // pictureboxのサイズを変更 this.pictureBox1.Width = 10 + (int)x_end + 10; this.pictureBox1.Height = 10 + (int)y_end + 10; Bitmap bmp = new Bitmap(this.pictureBox1.Width, this.pictureBox1.Height); //ImageオブジェクトのGraphicsオブジェクトを作成する Graphics g = Graphics.FromImage(bmp); //出入り口の数を設定 switch (deiriguti) { case 2: //左の枠線 g.DrawLine(Black, 10, 30, 10, y_end);//x始点は固定 //右の枠線 g.DrawLine(Black, x_end, 10, x_end, y_end - 20);//y始点は固定 //上の枠線 g.DrawLine(Black, 10, 10, x_end, 10);//始点と終点yは固定 //下の枠線 g.DrawLine(Black, 10, y_end, x_end, y_end); break; case 3: //左の枠線 g.DrawLine(Black, 10, 30, 10, y_end);//x始点は固定 //右の枠線 g.DrawLine(Black, x_end, 10, x_end, y_end - 20);//y始点は固定 //上の枠線 g.DrawLine(Black, 10, 10, x_end - 20, 10);//始点と終点yは固定 //下の枠線 g.DrawLine(Black, 10, y_end, x_end, y_end); break; case 4: //左の枠線 g.DrawLine(Black, 10, 30, 10, y_end);//x始点は固定 //右の枠線 g.DrawLine(Black, x_end, 10, x_end, y_end - 20);//y始点は固定 //上の枠線 g.DrawLine(Black, 10, 10, x_end - 20, 10);//始点と終点yは固定 //下の枠線 g.DrawLine(Black, 30, y_end, x_end, y_end); break; } //リソースを解放する g.Dispose(); //PictureBox1に表示する pictureBox1.Image = bmp; _img = bmp; }

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

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

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

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

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

HiroshiWatanabe

2016/04/22 02:26

入力された値が範囲内か判断すればいいだけでは無いですか? 丸々なサンプルを要求されても困るので例えば先に入力値の範囲判定していないサンプルをご自身で用意(提示)されてはどうでしょうか…それをどう改造すればいいか、というアドバイスの方が回答を得られやすいと思います。
guest

回答3

0

Window フォームアプリケーション であれば、
Windows Forms のための検証コントロール
http://mnow.wankuma.com/cs2005_mnowcontrol1.html
の様なサイトを参考にして、実装したりします。
質問からすると↑のサイトを見ても、チンプンカンプンかな?であれば、
検索ワード:C# 数値範囲チェック
で検索をしてみてください。事例が見つかります。

入力用の数値範囲を限定できるコントロールは単独で使う事もあるので、
ユーザーコントロールを作成して、汎用的に使える様にしておくと
共通化できたりします。

で、質問者さんが覚える必要があること。
1.質問を整理して、要求、要望を具体的に、箇条書きに出来る様になる事。
2.箇条書きに出来れば、検索が可能な事が多くなりますので、
グーグル検索を使って、検索をしてみます。
検索事例で不明な部分があれば、具体的に、何が不明か、何処が不明か、で
自身で再度調べたりした上で、質問したりします。

投稿2016/04/22 03:21

編集2016/04/22 03:29
daive

総合スコア2028

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

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

0

NumericUpDownを使いましょう。
numericUpDown1.Minimum = 2;
numericUpDown1.Maximum = 40;

投稿2016/04/22 02:27

aglkjggg

総合スコア769

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

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

0

コード提示を含め,回答を削除します

投稿2016/04/22 05:16

編集2016/04/25 02:39
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問