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

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

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

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

Windows Forms

Windows Forms(WinForms)はMicrosoft .NET フレームワークに含まれる視覚的なアプリケーションのプログラミングインターフェイス(API)です。WinFormsは管理されているコードの既存のWindowsのAPIをラップすることで元のMicrosoft Windowsのインターフェイスのエレメントにアクセスすることができます。

Q&A

解決済

1回答

927閲覧

WindowsForm 入力文字列の形式に関するエラー?

Saya_A

総合スコア76

Visual Studio

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

Windows Forms

Windows Forms(WinForms)はMicrosoft .NET フレームワークに含まれる視覚的なアプリケーションのプログラミングインターフェイス(API)です。WinFormsは管理されているコードの既存のWindowsのAPIをラップすることで元のMicrosoft Windowsのインターフェイスのエレメントにアクセスすることができます。

0グッド

0クリップ

投稿2018/07/07 07:29

編集2018/07/07 08:04

入力された値<request配列>をknigth以下配列と比較しseimei配列他に代入させ差の合計値をAll配列に入れ、
その値が最小となるときのrequest配列をlabel1-10に入力するようにしたいのですがうまくいきません。
この前に入力された値<request配列>をそのままlabel1-10に入力するときは大丈夫だったのですが、計算をいれたら** **の部分に入力文字列の形式 エラーが出ました。 どこを修正すればよいでしょうか。 
乗せる部分が足りていないなどの指摘もあったらお願いします。

C#

1 int Y, A; 2 int[] knight = new int[] { 9, 12, 10, 11, 15, 13, 12, 9, 9, 7 }; 3 int[] mercenary = new int[] { 8, 11, 12, 11, 10, 10, 16, 10, 8, 9 }; 4 int[] warrior = new int[] { 7, 14, 6, 12, 11, 16, 9, 8, 9, 11 }; 5 int[] messenger = new int[] { 9, 12, 10, 9, 12, 12, 11, 8, 13, 11 }; 6 int[] thief = new int[] { 5, 10, 11, 10, 9, 9, 13, 10, 8, 14 }; 7 int[] assassin = new int[] { 10, 10, 14, 11, 10, 10, 14, 11, 9, 10 }; 8 int[] sorcerer = new int[] { 6, 9, 16, 9, 7, 7, 12, 16, 7, 12 }; 9 int[] pyromancer = new int[] { 8, 11, 12, 10, 8, 12, 9, 14, 14, 7 }; 10 int[] cleric = new int[] { 7, 10, 14, 9, 7, 12, 8, 7, 16, 13 }; 11 int[] deprived = new int[] { 1, 10, 10, 10, 10, 10, 10, 10, 10, 10 }; 12 13 int[] request = new int[] {0,0,0,0,0,0,0,0,0,0,0 }; 14 int[] All = new int[] { }; 15 int j; 16 17 int[] seimei = new int[] { }; 18 int[] syutyu = new int[] { }; 19 int[] zikyu = new int[] { }; 20 int[] tairyoku = new int[] { }; 21 int[] kinryoku = new int[] { }; 22 int[] giryo = new int[] { }; 23 int[] riryoku = new int[] { }; 24 int[] sinko = new int[] { }; 25 int[] un = new int[] { }; 26 27 28 29 private void button19_Click(object sender, EventArgs e) 30 { 31 request[1] = int.Parse(textBox1.Text); 32 33 if (request[1] != 0) 34 { 35 seimei[0] = request[1] - knight[0]; 36  seimei[1] = request[1] - mercenary[0]; 37 seimei[2] = request[1] - warrior[0]; 38 seimei[3] = request[1] - messenger[0]; 39 seimei[4] = request[1] - thief[0]; 40 seimei[5] = request[1] - assassin[0]; 41 seimei[6] = request[1] - sorcerer[0]; 42 seimei[7] = request[1] - pyromancer[0]; 43 seimei[8] = request[1] - cleric[0]; 44 seimei[9] = request[1] - deprived[0]; 45 } 46 ** request[2] = int.Parse(textBox2.Text); ** 47 if (request[2] != 0) 48 { 49 syutyu[0] = request[2] - knight[1]; 50 syutyu[1] = request[2] - mercenary[1]; 51 syutyu[2] = request[2] - warrior[1]; 52 syutyu[3] = request[2] - messenger[1]; 53 syutyu[4] = request[2] - thief[1]; 54 syutyu[5] = request[2] - assassin[1]; 55 syutyu[6] = request[2] - sorcerer[1]; 56 syutyu[7] = request[2] - pyromancer[1]; 57 syutyu[8] = request[2] - cleric[1]; 58 syutyu[9] = request[2] - deprived[1]; 59 } 60 61 ....同じ形で962 63 for (int i = 0; i <= 9; i++) 64 { 65 All[i]=seimei[i] + syutyu[i] + zikyu[i] + tairyoku[i] + kinryoku[i] + giryo[i] + riryoku[i] + sinko[i] + un[i]; 66 } 67 int Min = All[0]; 68 for (int i = 0; i <= 9; i++) 69 { 70 if (Min > All[i]) 71 { 72 Min = All[i]; 73 j = i; 74 } 75 } 76 A = int.Parse(label1.Text);//Aに元のレベルを代入 77 A = A + All[j]; 78 79 label1.Text = A.ToString();//レベル表示枠に上昇後のレベル表示 80 label2.Text = request[1].ToString(); 81 label3.Text = request[2].ToString(); 82 label4.Text = request[3].ToString(); 83 label5.Text = request[4].ToString(); 84 label6.Text = request[5].ToString(); 85 label7.Text = request[6].ToString(); 86 label8.Text = request[7].ToString(); 87 label9.Text = request[8].ToString(); 88 label10.Text = request[9].ToString(); 89 } 90

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

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

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

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

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

y_waiwai

2018/07/07 07:36

たんにknight[0]が定義されてない(生成されてない)ってはなしでは? 全部の配列の定義を提示してください
Saya_A

2018/07/07 08:20

System.FormatException 入力文字列の形式が正しくありません。場所は** ** で囲った部分を変更しています
guest

回答1

0

ベストアンサー

int[] All = new int[] { };

これだとAllは0個の配列になるので、

int[] All = new int[10];

としましょう。
また、

int Min = All[0];

のところに、
j=0;
を追加しましょう。


int[] seimei = new int[] { };

int[] syutyu = new int[] { }; int[] zikyu = new int[] { }; int[] tairyoku = new int[] { }; int[] kinryoku = new int[] { }; int[] giryo = new int[] { }; int[] riryoku = new int[] { }; int[] sinko = new int[] { }; int[] un = new int[] { };

こいつらも同様ね

投稿2018/07/07 07:52

編集2018/07/07 07:54
y_waiwai

総合スコア87774

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

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

Saya_A

2018/07/07 08:00

回答ありがとうございます。さっきまでのエラーが直ったっぽいです! ただ新たなエラーが生まれてしまいました...
y_waiwai

2018/07/07 08:15

エラーメッセージを提示してください
y_waiwai

2018/07/07 08:23

> ** request[2] = int.Parse(textBox2.Text); ** textBox2.Text の内容が数値表現ではないのでは?空文字列とか
Saya_A

2018/07/07 08:25

未入力の状態でエラーになるようでした!ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問