C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

buttonを配列を使って任意の数生成するプログラム

[トピック内 6 記事 (1 - 6 表示)]  << 0 >>

■88828 / inTopicNo.1)  buttonを配列を使って任意の数生成するプログラム
  
□投稿者/ ハゲロン (1回)-(2018/10/03(Wed) 16:02:22)

分類:[.NET 全般] 

VisualStudio2017、C#でプログラムを作っています。

C#含めプログラム初心者なので、サンプルプログラムなどを無理やり組み合わせていたり、
専門用語がわからなかったりするので簡単に解決策を教えていただけると幸いです。

textboxに数値を入れてその後、buttonを生成するプログラムを作っています。
一次配列を使ってbuttonを生成するプログラムを作成するプログラムを作ることができましたが
二次配列を使って、buttonを縦と横(何×何)になるかを入力してbuttonを生成するプログラムを作成したところ、

this.Controls.AddRange(this.Buttons);

この文にエラーが出てうまく動かすことができません。どうすればよいでしょうか。
上の文の意味と、どのようにすれば直るかを教えてください。





引用返信 編集キー/
■88829 / inTopicNo.2)  Re[1]: buttonを配列を使って任意の数生成するプログラム
□投稿者/ ぼーちゃん (4回)-(2018/10/03(Wed) 16:39:25)
現状では情報が少なく色々と想像できてしまいます。
クラスのソースコード全文やエラー時に表示されたエラー内容について書いて頂くと
回答が付き易いかもしれません。
引用返信 編集キー/
■88830 / inTopicNo.3)  Re[1]: buttonを配列を使って任意の数生成するプログラム
□投稿者/ ハゲロン (2回)-(2018/10/03(Wed) 16:49:48)
No88828 (ハゲロン さん) に返信
> VisualStudio2017、C#でプログラムを作っています。
>
> C#含めプログラム初心者なので、サンプルプログラムなどを無理やり組み合わせていたり、
> 専門用語がわからなかったりするので簡単に解決策を教えていただけると幸いです。
>
> textboxに数値を入れてその後、buttonを生成するプログラムを作っています。
> 一次配列を使ってbuttonを生成するプログラムを作成するプログラムを作ることができましたが
> 二次配列を使って、buttonを縦と横(何×何)になるかを入力してbuttonを生成するプログラムを作成したところ、
>
> this.Controls.AddRange(this.Buttons);
>
> この文にエラーが出てうまく動かすことができません。どうすればよいでしょうか。
> 上の文の意味と、どのようにすれば直るかを教えてください。
>
>
>
>
>
引用返信 編集キー/
■88831 / inTopicNo.4)  Re[2]: buttonを配列を使って任意の数生成するプログラム
□投稿者/ ハゲロン (4回)-(2018/10/03(Wed) 16:53:15)
No88829 (ぼーちゃん さん) に返信
> 現状では情報が少なく色々と想像できてしまいます。
> クラスのソースコード全文やエラー時に表示されたエラー内容について書いて頂くと
> 回答が付き易いかもしれません。

重大度レベル コード 説明 プロジェクト ファイル 行 抑制状態
エラー CS1503 引数 1: は 'System.Windows.Forms.Button[*,*]' から 'System.Windows.Forms.Control[]' へ変換することはできません。 new_button C:\Users\takum\source\repos\new_button\Form1.cs 47 アクティブ

エラー文こんな感じです。


引用返信 編集キー/
■88832 / inTopicNo.5)  Re[3]: buttonを配列を使って任意の数生成するプログラム
□投稿者/ 魔界の仮面弁士 (1870回)-(2018/10/03(Wed) 17:15:18)
2018/10/03(Wed) 17:21:07 編集(投稿者)

No88831 (ハゲロン さん) に返信
>>> this.Controls.AddRange(this.Buttons);
> 引数 1: は 'System.Windows.Forms.Button[*,*]' から 'System.Windows.Forms.Control[]' へ変換することはできません。

AddRange メソッドの引数が要求しているのは Control[] 型なのに、
this.Buttons のデータ型は、Button[,] なので、型変換に失敗しています。


案1) AddRange のかわりに Add を繰り返し呼び出すようにする
foreach (Control button in this.Buttons) { this.Controls.Add(button); }

案2) 2 次元配列を 1 次元配列に変換してから AddRange に渡す
this.Controls.AddRange(this.Buttons.Cast<Control>().ToArray());


> 一次配列を使ってbuttonを生成
> 二次配列を使って、buttonを縦と横
一次配列、二次配列 ではなく、
一次元配列、二次元配列 ですよ。
引用返信 編集キー/
■88907 / inTopicNo.6)  Re[4]: buttonを配列を使って任意の数生成するプログラム
□投稿者/ ハゲロン (6回)-(2018/10/12(Fri) 15:59:52)
No88832 (魔界の仮面弁士 さん) に返信
> 2018/10/03(Wed) 17:21:07 編集(投稿者)
>
> ■No88831 (ハゲロン さん) に返信
> >>> this.Controls.AddRange(this.Buttons);
>>引数 1: は 'System.Windows.Forms.Button[*,*]' から 'System.Windows.Forms.Control[]' へ変換することはできません。
>
> AddRange メソッドの引数が要求しているのは Control[] 型なのに、
> this.Buttons のデータ型は、Button[,] なので、型変換に失敗しています。
>
>
> 案1) AddRange のかわりに Add を繰り返し呼び出すようにする
> foreach (Control button in this.Buttons) { this.Controls.Add(button); }
>
> 案2) 2 次元配列を 1 次元配列に変換してから AddRange に渡す
> this.Controls.AddRange(this.Buttons.Cast<Control>().ToArray());
>
>
>>一次配列を使ってbuttonを生成
>>二次配列を使って、buttonを縦と横
> 一次配列、二次配列 ではなく、
> 一次元配列、二次元配列 ですよ。
解決済み
引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ