質問編集履歴
6
コードに追加記述を行いました。
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
エラー情報を追加しました。誤字を修正しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -106,7 +106,7 @@
|
|
106
106
|
|
107
107
|
{
|
108
108
|
|
109
|
-
textBox1.
|
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
追記コードを修正しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -54,7 +54,9 @@
|
|
54
54
|
|
55
55
|
コードを追記します。
|
56
56
|
|
57
|
+
```
|
58
|
+
|
57
|
-
|
59
|
+
partial class Form1
|
58
60
|
|
59
61
|
{
|
60
62
|
|
3
コードを追加しました。
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
質問内容をもう少し明確な内容に修正いたしました。
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
頂きたいアドバイスの内容をもう少々明確に書き直しました。
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
|
|