Hallo,
ik ben bezig een tooltje te schrijven waarmee ik makkelijk en snel artwork van verschillende artiesten kan verwerken.
Ik liep tegen een probleem aan; bij het dragdroppen van rows uit een datagridview op een listbox leek het wel of het niet mogelijk was om de class die ik gebruik om data heen en weer te schuiven niet teruggecast kom worden met e.data.getdata().
De class (dragdropdatastore) word ook in Form1 gedefinieerd, dus ik ging ervan uit dat ik 'm gewoon terug kon casten, maar het bleek noodzakelijk om e.data.getdata naar CGSMan.Form1+dragdropdatastore te casten, alleen 'dragdropdatastore' leverd een reference naar Nothing op.
Het werkt maar het ziet er niet echt fraai uit - is het mogelijk om in de DragDrop eventhandler TOCH naar dragdropdatastore te casten en niet naar CGSMan.Form1+dragdropdatastore?
Waarom staat er uberhaupt een + in?
ik ben bezig een tooltje te schrijven waarmee ik makkelijk en snel artwork van verschillende artiesten kan verwerken.
Ik liep tegen een probleem aan; bij het dragdroppen van rows uit een datagridview op een listbox leek het wel of het niet mogelijk was om de class die ik gebruik om data heen en weer te schuiven niet teruggecast kom worden met e.data.getdata().
De class (dragdropdatastore) word ook in Form1 gedefinieerd, dus ik ging ervan uit dat ik 'm gewoon terug kon casten, maar het bleek noodzakelijk om e.data.getdata naar CGSMan.Form1+dragdropdatastore te casten, alleen 'dragdropdatastore' leverd een reference naar Nothing op.
Het werkt maar het ziet er niet echt fraai uit - is het mogelijk om in de DragDrop eventhandler TOCH naar dragdropdatastore te casten en niet naar CGSMan.Form1+dragdropdatastore?
Waarom staat er uberhaupt een + in?
Visual Basic .NET:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
| Public Class dragdropdatastore Private myAction As String Private myIDList As StringCollection Public Sub New(ByVal myaction As String, ByVal myidlist As StringCollection) Me.myAction = myaction Me.myIDList = myIDList End Sub Public Property Action() As String Set(ByVal value As String) myAction = value End Set Get Return myAction End Get End Property Public Property IDList() As StringCollection Set(ByVal value As StringCollection) myIDList = value End Set Get Return myIDList End Get End Property Public Overrides Function ToString() As String Return String.Format(CultureInfo.InvariantCulture, "{0} - Containing {1} IDs", Me.myAction, Me.myIDList.Count) End Function Public Function GiveAction() As String Return Me.myAction End Function Public Function GiveIDList() As StringCollection Return Me.myIDList End Function End Class Private Sub Artist_Addresses_MouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Artist_Addresses.MouseDown If e.Button = Windows.Forms.MouseButtons.Right Then Dim Index As Integer Dim idlist As New StringCollection For Each SelectedRow As DataGridViewRow In Artist_Addresses.SelectedRows idlist.Add(SelectedRow.Cells("AddressID").Value.ToString) Next Dim ddstore As New dragdropdatastore("AdressesToNewArtist", idlist) Index = Artist_Addresses.HitTest(e.X, e.Y).RowIndex If Index > -1 Then Artist_Addresses.DoDragDrop(ddstore, DragDropEffects.Copy) End If End If End Sub Private Sub Artwork_ArtistList_DragEnter(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles Artist_ArtistsFound.DragEnter, Artist_ArtistsSelection.DragEnter e.Effect = DragDropEffects.Copy End Sub Private Sub Artwork_ArtistList_DragDrop(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles Artist_ArtistsFound.DragDrop, Artist_ArtistsSelection.DragDrop If e.Data.GetDataPresent("CGSMan.Form1+dragdropdatastore") Then Dim ddstore As dragdropdatastore = DirectCast(e.Data.GetData("CGSMan.Form1+dragdropdatastore"), dragdropdatastore) Dim ddIDlist As StringCollection = ddstore.GiveIDList() ' Etc. End If End Sub |