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

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

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

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

.NET Framework 4.0

Microsoft Windows用のソフトウェア開発環境/実行環境である .NET Frameworkの4番目のメジャーバージョンです。

Q&A

解決済

1回答

3130閲覧

C# 手動でWindowsフォーム作成

kurosuke___

総合スコア217

C#

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

.NET Framework 4.0

Microsoft Windows用のソフトウェア開発環境/実行環境である .NET Frameworkの4番目のメジャーバージョンです。

0グッド

0クリップ

投稿2017/08/15 18:23

編集2017/08/15 18:25

ぽとペタ開発は楽でいいのですが、手動で書く場合はどのようにしたらいいのかと思い実践しています。

わからないのが、配置したボタンのイベントハンドラで配置してあるラベルのTextプロパティを書き換えたいのですが、作ったラベルにアクセスできません。

どのようにすればいいのか、どういう仕組なのか(どこにラベルがいるのか?)を教えていただけますでしょうか。(語彙がなくて申し訳ないです)

また、コード全体で推奨される他の書き方や慣例等がある場合も教えていただけますと幸いです。

よろしくお願いします。

C#

1using System; 2using System.Drawing; 3using System.Windows.Forms; 4 5class Program : Form 6{ 7 static void Main() 8 { 9 Application.Run(new Form1()); 10 } 11} 12 13class Form1 : Form 14{ 15 public Form1() 16 { 17 Width = 640; 18 Height = 480; 19 Text = "Windows Form Application Sample"; 20 21 Label myLabel1 = new Label(); 22 myLabel1.Location = new Point(10, 10); 23 myLabel1.Size = new Size(170, 30); 24 myLabel1.Text = ("ボタンを押すと変化します。"); 25 Controls.Add(myLabel1); 26 27 Button myButton1 = new Button(); 28 myButton1.Location = new Point(440, 400); 29 myButton1.Size = new Size(170, 30); 30 myButton1.Text = ("ボタン"); 31 myButton1.Click += new EventHandler(this.myButton1_Clicked); 32 Controls.Add(myButton1); 33 34 35 } 36 37 private void myButton1_Clicked(object sender, EventArgs e) 38 { 39 } 40} 41

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

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

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

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

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

guest

回答1

0

ベストアンサー

方法1 メンバ変数にラベルを定義する

C#

1class Form1 : Form 2{ 3 private Label myLabel1 = new Label(); 4 public Form1() 5 { 6 Width = 640; 7 Height = 480; 8 Text = "Windows Form Application Sample"; 9 10 myLabel1.Location = new Point(10, 10); 11 myLabel1.Size = new Size(170, 30); 12 myLabel1.Text = ("ボタンを押すと変化します。"); 13 Controls.Add(myLabel1); 14 15 Button myButton1 = new Button(); 16 myButton1.Location = new Point(440, 400); 17 myButton1.Size = new Size(170, 30); 18 myButton1.Text = ("ボタン"); 19 myButton1.Click += new EventHandler(this.myButton1_Clicked); 20 Controls.Add(myButton1); 21 22 23 } 24 25 private void myButton1_Clicked(object sender, EventArgs e) 26 { 27 myLabel.Text = "書き換えるよ!" 28 } 29}

方法2
ラベルにユニークな名前をつける

C#

1class Form1 : Form 2{ 3 public Form1() 4 { 5 Width = 640; 6 Height = 480; 7 Text = "Windows Form Application Sample"; 8 9 Label myLabel1 = new Label(); 10 myLabel1.Name = "myLabel1" 11 myLabel1.Location = new Point(10, 10); 12 myLabel1.Size = new Size(170, 30); 13 myLabel1.Text = ("ボタンを押すと変化します。"); 14 Controls.Add(myLabel1); 15 16 Button myButton1 = new Button(); 17 myButton1.Location = new Point(440, 400); 18 myButton1.Size = new Size(170, 30); 19 myButton1.Text = ("ボタン"); 20 myButton1.Click += new EventHandler(this.myButton1_Clicked); 21 Controls.Add(myButton1); 22 23 24 } 25 26 private void myButton1_Clicked(object sender, EventArgs e) 27 { 28 var myLabel1 = (Label)Controlls.Where(m=> m.Name == "myLabel1").First() 29 myLabel1.Text = "書き換えるよ!" 30 } 31}

投稿2017/08/15 18:55

Tak1016

総合スコア1408

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

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

kurosuke___

2017/08/15 19:00

迅速な回答ありがとうございます! 初心者の私には方法1の、ラベルをメンバ変数として作るほうが簡単かつ見やすいように見えますね・・・ 解決策をご提示いただき大変助かります。ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問