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

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

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

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

Q&A

解決済

1回答

1070閲覧

bt2が使えない(ファイルを読み込むボタンが使えなくて困っています)

ryunosuk

総合スコア5

C#

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

1グッド

0クリップ

投稿2020/04/11 07:21

前提・実現したいこと

C# でTODOアプリをつくっています。

bt2を使えるようにしてbt2を押すと、テキストがファイルに保存されるようにしたいです。

宜しくお願いします。

発生している問題・エラーメッセージ

エラー CS1519 クラス、構造体、またはインターフェイス メンバーの宣言でトークン '+=' が無効です。
というエラーと

識別子がありませんというエラーが出ています。

エラーメッセージ

該当のソースコード

C#

1using System; 2using System.Data; 3using System.Text; 4using System.Windows.Forms; 5using System.IO; 6class Sample3 : Form 7{ 8 private Label lb; 9 private Label[] lb2 = new Label[3]; 10 private TextBox tb; 11 private Button bt; 12 private Button bt2; 13 14 15 16 [STAThread] 17 18 public static void Main() 19 { 20 Application.Run(new Sample3()); 21 } 22 public Sample3() 23 { 24 this.Text = "TODOApp"; 25 this.Width = 600; this.Height = 600; 26 27 lb = new Label(); 28 lb.Text = "ようこそ"; 29 lb.Dock = DockStyle.Top; 30 31 for(int i=0;i<lb2.Length;i++) 32 { 33 lb2[i] = new Label(); 34 lb2[i].Top = i + lb2[0].Height; 35 lb2[i].Width = 300; 36 } 37 38 tb = new TextBox(); 39 tb.Dock = DockStyle.Bottom; 40 tb.Multiline = true; 41 42 bt = new Button(); 43 bt.Text = "削除"; 44 bt.Top = 500; 45 bt.Width = 50; 46 47 bt2 = new Button(); 48 bt2.Text = "保存"; 49 bt2.Top = 500; 50 bt2.Left = 200; 51 52 53 54 55 56 lb.Parent = this; 57 tb.Parent = this; 58 bt.Parent = this; 59 bt2.Parent = this; 60 61 for (int i = 0; i < lb2.Length; i++) 62 { 63 lb2[i].Parent = this; 64 } 65 66 67 tb.KeyDown += new KeyEventHandler(tb_KeyDown); 68 } 69 public void tb_KeyDown(object sender, KeyEventArgs e) 70 { 71 72 TextBox tmp = (TextBox)sender; 73 if (e.KeyCode == Keys.Enter) 74 { 75 lb.Text = tmp.Text; 76 } 77 bt.Click += new EventHandler(bt_Click); 78 } 79 80 81 82 public void bt_Click(object sender, EventArgs e) 83 { 84 lb.Text = ""; 85 } 86 bt2.Click+= new EventHandler(bt2_Click); 87 88 89 public void bt2_Click(Object sender, EventArgs e) 90 { 91 OpenFileDialog ofd = new OpenFileDialog(); 92 93 if (ofd.ShowDialog() == DialogResult.OK) 94 { 95 FileInfo fi = new FileInfo(ofd.FileName); 96 lb2[0].Text = "ファイル名は" + ofd.FileName + "です。"; 97 lb2[1].Text = "絶対パスは" 98 + Path.GetFullPath(ofd.FileName) + "です。"; 99 lb2[2].Text = "サイズは" 100 + Convert.ToString(fi.Length) + "です。"; 101 } 102 } 103 104 105} 106ソースコード

試したこと

記述ミスはないかと思われます。
ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

TN8001👍を押しています

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

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

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

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

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

hihijiji

2020/04/11 07:24

public Sample3() ←はなんですか?
ryunosuk

2020/04/11 07:36

Sample3 ファイルなのでついてます!
hihijiji

2020/04/11 07:40

ファイル?? 少なくとも public Sample3() は構文が間違ってます。 戻り値の無いメソッドなら void が必要です。
ryunosuk

2020/04/11 07:48

どのように修正すればよいでしょうか? 本をそのままうつしています。
hihijiji

2020/04/11 08:00

その本と何度も見比べて、間違いを訂正してください。
TN8001

2020/04/11 08:01

public Sample3()はコンストラクタですね
guest

回答1

0

ベストアンサー

bt.Click += new EventHandler(bt_Click);

bt2.Click += new EventHandler(bt2_Click);

tb.KeyDown += new KeyEventHandler(tb_KeyDown);
の下あたりに移動しましょう。

cs

1// 省略 2class Sample3 : Form 3{ 4// 省略 5 public Sample3() 6 { 7// 省略 8 9 tb.KeyDown += new KeyEventHandler(tb_KeyDown); 10 bt.Click += new EventHandler(bt_Click); 11 bt2.Click += new EventHandler(bt2_Click); 12 } 13// 省略 14}

投稿2020/04/11 08:02

編集2023/07/21 09:40
TN8001

総合スコア9321

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

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

ryunosuk

2020/04/11 08:10

本当にありがとうございます!! できました!!
TN8001

2020/04/11 08:23

あと lb2[i].Top = i + lb2[0].Height; は lb2[i].Top = i * lb2[0].Height + lb.Height; とか?がいいかもしれませんね。 重なってしまって見えなくなっています。
ryunosuk

2020/04/11 22:26

ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問