By Adam Nagy
You may have lots of data that you would like to make editable for the user. If it can be organized into a table then you could simply use a Form with a DataGridView on it. There is an article on providing custom dialogs from iLogic: http://adndevblog.typepad.com/manufacturing/2013/06/use-vbnet-dialog-in-ilogic.html
This will be the same, but here we will expose the DataGridView which is placed on the Form so you can take advantage of all its functionality: http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview(v=vs.100).aspx
This is how you can use it from an iLogic Rule:
Imports System.Windows.Forms
AddReference "C:\temp\MyTableForm.dll"
Using mf As New MyTableForm.MyForm
mf.Text = "Get Data"
Dim dgv As DataGridView = mf.dgvTable' set columns
Dim c1 As Integer = dgv.Columns.Add("MyColumn1", "MyColumnHeader1")
Dim c2 As Integer = dgv.Columns.Add("MyColumn2", "MyColumnHeader2")' add two rows
Dim r1 As Integer = dgv.Rows.Add()
Dim r2 As Integer = dgv.Rows.Add()' disable sorting
dgv.Columns(c1).SortMode = DataGridViewColumnSortMode.NotSortable
dgv.Columns(c2).SortMode = DataGridViewColumnSortMode.NotSortable' set cell data
dgv.Rows(r1).Cells(1).Value = "test1"
dgv.Rows(r2).Cells(1).Value = "test2"' make one of them read-only
dgv.Rows(r2).Cells(1).ReadOnly = True' show the dialog
If mf.ShowDialog() = DialogResult.OK Then
MsgBox(dgv.Rows(0).Cells(0).Value, MsgBoxStyle.Information, "Results")
End If
End UsingThe result:
Here is the source code of the VB.NET 2010 project: Download MyTableForm_2013-11-18
The compiled dll is also part of the zip file in folder "MyTableForm\MyTableForm\bin\Release".