|
■No67336 (青花 さん) に返信
> 魔界の仮面弁士さんのソースをVB.Netに移植しようとしてますが、中々エラーが消えません。
VB を利用されているなら、「.NET全般」で投稿せず、VB.NET を指定してくだされば良かったのに…。(^_^;)
それから、質問時にはバージョンも明記してください。古いバージョンの VB.NET を
使っている場合には、幾つかの文法構文が使えない可能性がありますので。
> 一応、頑張って下記の状態まで持ってきました。
とりあえず、最初のコードを VB 版に訳しておきます。
Option Strict On
Option Infer On
Imports System
Imports System.Linq
Imports System.Windows.Forms
Partial Public Class Form1
Private dgv As DataGridView
Private data(2)() As String
Public Sub New()
InitializeComponent()
data(0) = {}
data(1) = {"赤", "黄", "桃"}
data(2) = {"青", "緑", "紫"}
dgv = New DataGridView() With {.Dock = DockStyle.Fill, .Name = "dgv"}
dgv.EditMode = DataGridViewEditMode.EditOnEnter
With dgv.Columns
.Add("Flg", "Flg")
.Add(New DataGridViewComboBoxColumn() With _
{.DisplayStyle = DataGridViewComboBoxDisplayStyle.Nothing _
, .HeaderText = "コンボリスト" _
, .Name = "コンボリスト" _
})
End With
'AddHandler dgv.DataError, _
' Sub(o, arg)
' arg.Cancel = False
' End Sub
AddHandler dgv.CellValueChanged, _
Sub(o, arg)
If arg.ColumnIndex = 0 Then
Dim g = DirectCast(o, DataGridView)
Dim r = arg.RowIndex
Dim s = If(g(0, r).Value, "").ToString()
Dim i = 0
Integer.TryParse(s, i)
If i < 0 OrElse i > 2 Then i = 0
g(1, r) = New DataGridViewComboBoxCell() With _
{.DisplayStyle = DataGridViewComboBoxDisplayStyle.Nothing _
, .DataSource = data(i) _
, .Value = data(i).FirstOrDefault() _
}
g(0, r).ErrorText = If(i <> 0, "", "Flg には 1 または 2 を指定してください。")
End If
End Sub
Controls.Add(dgv)
End Sub
End Class
上記では、最初の C# のコードで書き漏らしていた
「DisplayStyle = DataGridViewComboBoxDisplayStyle.Nothing」
の指定を追加しています。付けるかどうかはお好みで。
|