teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

追記

2019/03/16 06:59

投稿

Zuishin
Zuishin

スコア28675

answer CHANGED
@@ -31,4 +31,36 @@
31
31
  })
32
32
 
33
33
  $Form.ShowDialog()
34
+ ```
35
+
36
+ # 追記
37
+
38
+ BindingSource を使わないバージョン
39
+
40
+ ```C#
41
+ Using NameSpace System.Windows.Forms
42
+ Using NameSpace System.Data
43
+
44
+ $Form = [Form]::new()
45
+
46
+ $View = [DataGridView]::new()
47
+
48
+ $Data = [DataTable]::new()
49
+ $Data.Columns.Add("tset")
50
+
51
+ $DataView = $Data.DefaultView
52
+ $View.DataSource = $DataView
53
+ $View.Name = "View"
54
+
55
+ $Form.Controls.Add($View)
56
+
57
+ $Form.Add_Click({
58
+ [DataGridView] $View = $This.Controls["View"]
59
+ #$View.DataSource = $null # データソース割当解除 ここをコメントアウトすると...
60
+ $DataView.CancelEdit()
61
+ $Data.Rows.Add()
62
+ $View.DataSource = $Data
63
+ })
64
+
65
+ $Form.ShowDialog()
34
66
  ```

1

追記

2019/03/16 06:59

投稿

Zuishin
Zuishin

スコア28675

answer CHANGED
@@ -1,3 +1,34 @@
1
1
  それは新規作成用の行です。
2
2
  その行にデータを入力すると新しい行が作成される仕組みです。
3
- これを作らないには、$View.AllowUserToAddRows = $False としてください。
3
+ これを作らないには、$View.AllowUserToAddRows = $False としてください。
4
+
5
+ # 追記
6
+
7
+ ```C#
8
+ Using NameSpace System.Windows.Forms
9
+ Using NameSpace System.Data
10
+
11
+ $Form = [Form]::new()
12
+
13
+ $View = [DataGridView]::new()
14
+
15
+ $Data = [DataTable]::new()
16
+ $Data.Columns.Add("tset")
17
+
18
+ $BindingSource = [BindingSource]::new()
19
+ $BindingSource.DataSource = $Data
20
+ $View.DataSource = $BindingSource
21
+ $View.Name = "View"
22
+
23
+ $Form.Controls.Add($View)
24
+
25
+ $Form.Add_Click({
26
+ [DataGridView] $View = $This.Controls["View"]
27
+ #$View.DataSource = $null # データソース割当解除 ここをコメントアウトすると...
28
+ $BindingSource.CancelEdit()
29
+ $Data.Rows.Add()
30
+ $View.DataSource = $Data
31
+ })
32
+
33
+ $Form.ShowDialog()
34
+ ```