投稿者 辺見!真琴  (社会人) 投稿日時 2022/11/7 01:22:23
 反応ありがとうございます。

> たとえば、Timer で下記を実行した場合、常に this.Text == "1" の状態になってしまいますか?
> this.Text = $"{(int.TryParse(this.Text, out int num) ? num + 1 : 1)}";

 はい、0から1になって、後は常に1の状態でした。

> WindowsFormsApp1 - "Windows フォーム アプリケーション (.NET Framework)" と
> WinFormsApp1 - "Windows フォーム アプリ" のいずれの場合でも、
> int.Parse が失敗するのでしょうか。
> // int x = int.Parse(this.Text);
> int x = int.Parse("0");
> this.Text = (x + 1).ToString();

 ここの入門はWinFormsApp1でこなして来ました。
 改めてWindowsFormsApp1でもやってみましたが、どちらもこのサンプルは0から1に変わって、後は常に1でした。
 エラーは出ませんでした。

 思い付きで、コメントアウトしていたコードを復帰させてもう少し分解してみました。
var x = this.Text;
int y = int.Parse(x);
this.Text = (y + 1).ToString();

 2行目のParse()で例外が出ました。
 "0"が変換出来てthis.Textが変換出来ないと言うのは・・・うむむむむ。