回答編集履歴

1

見直しキャンペーン中

2023/07/29 08:16

投稿

TN8001
TN8001

スコア9898

test CHANGED
@@ -2,52 +2,27 @@
2
2
 
3
3
  [WebBrowserコントロール内のテキストボックスに文字列をセットするには?[2.0、C#、VB]:.NET TIPS - @IT](https://atmarkit.itmedia.co.jp/ait/articles/0904/02/news116.html)
4
4
 
5
-
6
-
7
5
  この2つの記事を合体させたいわけですね。
8
6
 
9
7
 
10
-
11
-
12
-
13
8
  現状は`Document`がnullだからエラーになってるんですよね?
14
-
15
9
  つまりページが読み込まれる前に、`ProgressChanged`に来てしまっている。と
16
-
17
-
18
10
 
19
11
  ならnullチェックするだけでは?
20
12
 
21
-
22
-
23
13
  ほかの要素もnullになるかもしれないし、`reader.Decode`も例外を出すことがあるようなので不完全ですがこんなイメージで。
24
-
25
- ```C#
14
+ ```cs
26
-
27
15
  private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
28
-
29
16
  {
30
-
31
17
  graphic.DrawImage(bmp, 0, 0, frame.Cols, frame.Rows);
32
18
 
33
-
34
-
35
19
  if (webBrowser1.Document == null) return; // まだ読み込み中なら入れようがない
36
-
37
20
 
38
-
39
21
  string text = scancode();
40
-
41
22
  if (string.IsNullOrEmpty(text)) return; // バーコードが写っていないとnull?Empty?例外?(私は知りません)
42
23
 
43
-
44
-
45
24
  HtmlElementCollection all = webBrowser1.Document.All;
46
-
47
25
  HtmlElementCollection forms = all.GetElementsByName("EnterNo");
48
-
49
26
  forms[0].InnerText = text;
50
-
51
27
  }
52
-
53
28
  ```