質問編集履歴

6

コードに追加記述を行いました。

2017/05/01 18:02

投稿

GuielNo4
GuielNo4

スコア88

test CHANGED
File without changes
test CHANGED
@@ -55,6 +55,16 @@
55
55
  コードを追記します。
56
56
 
57
57
  ```
58
+
59
+ using System;
60
+
61
+ using System.Timers;
62
+
63
+ using System.Windows.Forms;
64
+
65
+
66
+
67
+
58
68
 
59
69
  partial class Form1
60
70
 

5

エラー情報を追加しました。誤字を修正しました。

2017/05/01 18:02

投稿

GuielNo4
GuielNo4

スコア88

test CHANGED
File without changes
test CHANGED
@@ -106,7 +106,7 @@
106
106
 
107
107
  {
108
108
 
109
- textBox1.text = "test"; <---------------------------------------------エラー発生。
109
+ textBox1.Text = "test"; <---------------------------------------------エラー発生。
110
110
 
111
111
  return;
112
112
 
@@ -114,12 +114,12 @@
114
114
 
115
115
  }
116
116
 
117
- コード
118
-
119
117
  ```
120
118
 
121
119
 
122
120
 
123
121
  エラー内容
124
122
 
125
- 型 'System.InvalidOperationException' の例外が System.Windows.Forms.dll で発生しましたが、ユーザー コード内ではハンドルされませんでした
123
+ 型 'System.InvalidOperationException' の例外が System.Windows.Forms.dll で発生しましたが、ユーザー コード内ではハンドルされませんでした
124
+
125
+ 追加情報:有効ではないスレッド間の操作: コントロールが作成されたスレッド以外のスレッドからコントロール 'textBox1' がアクセスされました。

4

追記コードを修正しました。

2017/05/01 17:17

投稿

GuielNo4
GuielNo4

スコア88

test CHANGED
File without changes
test CHANGED
@@ -54,7 +54,9 @@
54
54
 
55
55
  コードを追記します。
56
56
 
57
+ ```
58
+
57
- ```partial class Form1
59
+ partial class Form1
58
60
 
59
61
  {
60
62
 

3

コードを追加しました。

2017/05/01 17:04

投稿

GuielNo4
GuielNo4

スコア88

test CHANGED
File without changes
test CHANGED
@@ -47,3 +47,77 @@
47
47
 
48
48
 
49
49
  よろしくお願い致します。
50
+
51
+
52
+
53
+ 【追記】
54
+
55
+ コードを追記します。
56
+
57
+ ```partial class Form1
58
+
59
+ {
60
+
61
+ // デフォで作成される Dispose メソッド等は省略
62
+
63
+ ...
64
+
65
+ private System.Windows.Forms.TextBox textBox1;
66
+
67
+ }
68
+
69
+
70
+
71
+ public partial class Form1 : Form
72
+
73
+ {
74
+
75
+ private static System.Timers.Timer timer;
76
+
77
+
78
+
79
+ public Form1()
80
+
81
+ {
82
+
83
+ InitializeComponent();
84
+
85
+ // タイマーの生成
86
+
87
+ timer = new System.Timers.Timer();
88
+
89
+ timer.Elapsed += new ElapsedEventHandler(OnElapsed_TimersTimer);
90
+
91
+ timer.Interval = 5;
92
+
93
+ // タイマーを開始
94
+
95
+ timer.Start();
96
+
97
+ return;
98
+
99
+ }
100
+
101
+
102
+
103
+ public void OnElapsed_TimersTimer(object sender, EventArgs e)
104
+
105
+ {
106
+
107
+ textBox1.text = "test"; <---------------------------------------------エラー発生。
108
+
109
+ return;
110
+
111
+ }
112
+
113
+ }
114
+
115
+ コード
116
+
117
+ ```
118
+
119
+
120
+
121
+ エラー内容
122
+
123
+ 型 'System.InvalidOperationException' の例外が System.Windows.Forms.dll で発生しましたが、ユーザー コード内ではハンドルされませんでした

2

質問内容をもう少し明確な内容に修正いたしました。

2017/05/01 17:03

投稿

GuielNo4
GuielNo4

スコア88

test CHANGED
File without changes
test CHANGED
@@ -1,6 +1,10 @@
1
1
  ###前提・実現したいこと
2
2
 
3
+ System.Timers でイベントを発生させて、イベント回数を文字列で表示ささせようとしているのですが、
4
+
3
- 文字表示に適しツールオブジェクト教えてださい。
5
+ うまくいかないめアドバイス頂きた
6
+
7
+ 質問させていただきました。
4
8
 
5
9
 
6
10
 

1

頂きたいアドバイスの内容をもう少々明確に書き直しました。

2017/05/01 13:17

投稿

GuielNo4
GuielNo4

スコア88

test CHANGED
File without changes
test CHANGED
@@ -24,23 +24,21 @@
24
24
 
25
25
 
26
26
 
27
- そもそも文字表示「テキストボックス」を利用ようとしことが
27
+ そもそもタイマーイベント登録したメソッドから、
28
28
 
29
- 間違いではないか?と考えました。
29
+ 「テキストボックス」にアクセスしようとしたこと自体が間違いではないか?と考えました。
30
30
 
31
31
 
32
32
 
33
33
  「windowsフォームとは何か?」を理解することから始める必要があるのかもしれませんが、
34
34
 
35
- もそもそんなとに時間をかけたくないので、
35
+ 今の段階で、そこに時間をかけたくないので、
36
36
 
37
37
  とっかかりとして、
38
38
 
39
- 「System.Timers でイベントを発生させて、
39
+ 「System.Timers でイベントを発生させて、イベント回数を文字列で表示する」ことに関して、いい方法を記しているサンプルコードのあるページをご存知の方がいらっしゃいましたら、
40
40
 
41
- イベント回数を文字列で表示する」のに最も適したwindows form「ツール」のアドバイスを頂けないかと思い、
42
-
43
- 質問し次第です。
41
+ アドバイスいだけると助かります。
44
42
 
45
43
 
46
44