Adatta interfaccia touch e pubblica ClickOnce 1.0.12.0

This commit is contained in:
Livio Merola committed 2026-10-08 08:35:23 +02:00
1 parent c820261908
commit 8a7433cb97
10 files changed
+200 -123

No files matched your search

+139 -62
View File
@@ -73,8 +73,8 @@ Public Class Form1
Private Sub BuildInterface()
Text = "LMEMoxaTransfer"
Icon = New Icon(Path.Combine(Application.StartupPath, "Assets", "app-icon.ico"))
MinimumSize = New Size(1030, 690)
Size = New Size(1120, 760)
MinimumSize = New Size(800, 560)
Size = New Size(1050, 720)
StartPosition = FormStartPosition.CenterScreen
Dim shell As New TableLayoutPanel With {
@@ -93,20 +93,27 @@ Public Class Form1
mainMenu.Dock = DockStyle.Fill
shell.Controls.Add(mainMenu, 0, 0)
Dim tabs As New TabControl With {.Dock = DockStyle.Fill, .Margin = Padding.Empty}
Dim tabs As New TabControl With {
.Dock = DockStyle.Fill,
.Margin = Padding.Empty,
.Font = New Font(Font.FontFamily, 11.0F),
.Padding = New Point(14, 10)
}
Dim tabTrasferimento As New TabPage("Trasferimento programmi")
Dim tabModificaFile As New TabPage("Modifica file")
Dim tabStatoMoxa As New TabPage("Stato Moxa")
Dim tabParametri As New TabPage("Parametri trasferimento")
tabs.TabPages.Add(tabTrasferimento)
tabs.TabPages.Add(tabModificaFile)
tabs.TabPages.Add(tabStatoMoxa)
tabs.TabPages.Add(tabParametri)
shell.Controls.Add(tabs, 0, 1)
Dim root As New TableLayoutPanel With {
.Dock = DockStyle.Fill,
.ColumnCount = 1,
.RowCount = 4,
.Padding = New Padding(14)
.Padding = New Padding(12)
}
root.RowStyles.Add(New RowStyle(SizeType.AutoSize))
root.RowStyles.Add(New RowStyle(SizeType.AutoSize))
@@ -122,22 +129,30 @@ Public Class Form1
}
root.Controls.Add(grpConnessione, 0, 0)
Dim conn As New TableLayoutPanel With {.Dock = DockStyle.Fill, .ColumnCount = 10, .AutoSize = True}
conn.ColumnStyles.Add(New ColumnStyle(SizeType.AutoSize))
conn.ColumnStyles.Add(New ColumnStyle(SizeType.Absolute, 150))
conn.ColumnStyles.Add(New ColumnStyle(SizeType.AutoSize))
conn.ColumnStyles.Add(New ColumnStyle(SizeType.Absolute, 230))
conn.ColumnStyles.Add(New ColumnStyle(SizeType.AutoSize))
conn.ColumnStyles.Add(New ColumnStyle(SizeType.Absolute, 135))
conn.ColumnStyles.Add(New ColumnStyle(SizeType.AutoSize))
conn.ColumnStyles.Add(New ColumnStyle(SizeType.Absolute, 90))
conn.ColumnStyles.Add(New ColumnStyle(SizeType.AutoSize))
conn.ColumnStyles.Add(New ColumnStyle(SizeType.Absolute, 90))
Dim conn As New TableLayoutPanel With {.Dock = DockStyle.Fill, .ColumnCount = 1, .RowCount = 2, .AutoSize = True}
conn.RowStyles.Add(New RowStyle(SizeType.Absolute, 58))
conn.RowStyles.Add(New RowStyle(SizeType.Absolute, 42))
grpConnessione.Controls.Add(conn)
cboAzienda.DropDownStyle = ComboBoxStyle.DropDownList
Dim selectors As New TableLayoutPanel With {.Dock = DockStyle.Fill, .ColumnCount = 4}
selectors.ColumnStyles.Add(New ColumnStyle(SizeType.AutoSize))
selectors.ColumnStyles.Add(New ColumnStyle(SizeType.Percent, 50))
selectors.ColumnStyles.Add(New ColumnStyle(SizeType.AutoSize))
selectors.ColumnStyles.Add(New ColumnStyle(SizeType.Percent, 50))
conn.Controls.Add(selectors, 0, 0)
Dim details As New TableLayoutPanel With {.Dock = DockStyle.Fill, .ColumnCount = 6}
details.ColumnStyles.Add(New ColumnStyle(SizeType.AutoSize))
details.ColumnStyles.Add(New ColumnStyle(SizeType.Percent, 38))
details.ColumnStyles.Add(New ColumnStyle(SizeType.AutoSize))
details.ColumnStyles.Add(New ColumnStyle(SizeType.Percent, 31))
details.ColumnStyles.Add(New ColumnStyle(SizeType.AutoSize))
details.ColumnStyles.Add(New ColumnStyle(SizeType.Percent, 31))
conn.Controls.Add(details, 0, 1)
ConfigureTouchCombo(cboAzienda)
cboAzienda.Dock = DockStyle.Fill
cboMacchina.DropDownStyle = ComboBoxStyle.DropDownList
ConfigureTouchCombo(cboMacchina)
cboMacchina.Dock = DockStyle.Fill
txtIpMoxa.Dock = DockStyle.Fill
txtIpMoxa.ReadOnly = True
@@ -148,16 +163,16 @@ Public Class Form1
nudTimeoutInattivita.Minimum = 1
nudTimeoutInattivita.Maximum = 120
conn.Controls.Add(New Label With {.Text = "Azienda", .AutoSize = True, .Anchor = AnchorStyles.Left}, 0, 0)
conn.Controls.Add(cboAzienda, 1, 0)
conn.Controls.Add(New Label With {.Text = "Macchina", .AutoSize = True, .Anchor = AnchorStyles.Left, .Margin = New Padding(14, 0, 3, 0)}, 2, 0)
conn.Controls.Add(cboMacchina, 3, 0)
conn.Controls.Add(New Label With {.Text = "IP Moxa", .AutoSize = True, .Anchor = AnchorStyles.Left, .Margin = New Padding(14, 0, 3, 0)}, 4, 0)
conn.Controls.Add(txtIpMoxa, 5, 0)
conn.Controls.Add(New Label With {.Text = "Porta", .AutoSize = True, .Anchor = AnchorStyles.Left, .Margin = New Padding(14, 0, 3, 0)}, 6, 0)
conn.Controls.Add(nudPorta, 7, 0)
conn.Controls.Add(New Label With {.Text = "Timeout s", .AutoSize = True, .Anchor = AnchorStyles.Left, .Margin = New Padding(14, 0, 3, 0)}, 8, 0)
conn.Controls.Add(nudTimeoutConnessione, 9, 0)
selectors.Controls.Add(New Label With {.Text = "Azienda", .AutoSize = True, .Anchor = AnchorStyles.Left}, 0, 0)
selectors.Controls.Add(cboAzienda, 1, 0)
selectors.Controls.Add(New Label With {.Text = "Macchina", .AutoSize = True, .Anchor = AnchorStyles.Left, .Margin = New Padding(12, 0, 3, 0)}, 2, 0)
selectors.Controls.Add(cboMacchina, 3, 0)
details.Controls.Add(New Label With {.Text = "IP Moxa", .AutoSize = True, .Anchor = AnchorStyles.Left}, 0, 0)
details.Controls.Add(txtIpMoxa, 1, 0)
details.Controls.Add(New Label With {.Text = "Porta", .AutoSize = True, .Anchor = AnchorStyles.Left}, 2, 0)
details.Controls.Add(nudPorta, 3, 0)
details.Controls.Add(New Label With {.Text = "Timeout s", .AutoSize = True, .Anchor = AnchorStyles.Left}, 4, 0)
details.Controls.Add(nudTimeoutConnessione, 5, 0)
Dim grpTrasferimento As New GroupBox With {
.Text = "Invio e ricezione programmi",
@@ -168,11 +183,14 @@ Public Class Form1
}
root.Controls.Add(grpTrasferimento, 0, 1)
Dim transfer As New TableLayoutPanel With {.Dock = DockStyle.Fill, .ColumnCount = 4, .RowCount = 10, .AutoSize = True}
transfer.ColumnStyles.Add(New ColumnStyle(SizeType.AutoSize))
Dim transfer As New TableLayoutPanel With {.Dock = DockStyle.Fill, .ColumnCount = 4, .RowCount = 3, .AutoSize = True}
transfer.ColumnStyles.Add(New ColumnStyle(SizeType.Absolute, 130))
transfer.ColumnStyles.Add(New ColumnStyle(SizeType.Percent, 100))
transfer.ColumnStyles.Add(New ColumnStyle(SizeType.AutoSize))
transfer.ColumnStyles.Add(New ColumnStyle(SizeType.Absolute, 120))
transfer.ColumnStyles.Add(New ColumnStyle(SizeType.Absolute, 125))
transfer.ColumnStyles.Add(New ColumnStyle(SizeType.Absolute, 155))
transfer.RowStyles.Add(New RowStyle(SizeType.Absolute, 62))
transfer.RowStyles.Add(New RowStyle(SizeType.Absolute, 62))
transfer.RowStyles.Add(New RowStyle(SizeType.Absolute, 58))
grpTrasferimento.Controls.Add(transfer)
ConfigureButton(btnSfogliaInvio, "Sfoglia")
@@ -181,11 +199,18 @@ Public Class Form1
ConfigureButton(btnInvia, "Invia a Okuma")
ConfigureButton(btnRicevi, "Ricevi da Okuma")
ConfigureButton(btnAnnulla, "Annulla")
For Each actionButton In {btnSfogliaInvio, btnSfogliaRicezione, btnInvia, btnRicevi, btnAnnulla}
actionButton.Dock = DockStyle.Fill
Next
btnAnnulla.Enabled = False
txtFileInvio.Dock = DockStyle.Fill
txtFileRicezione.Dock = DockStyle.Fill
cboTerminatoreInvio.DropDownStyle = ComboBoxStyle.DropDownList
For Each pathBox In {txtFileInvio, txtFileRicezione}
pathBox.Dock = DockStyle.Fill
pathBox.AutoSize = False
pathBox.Font = New Font(Font.FontFamily, 11.0F)
pathBox.Margin = New Padding(3, 8, 3, 8)
Next
ConfigureTouchCombo(cboTerminatoreInvio)
cboTerminatoreInvio.Items.AddRange(New Object() {"Nessuno", "CR", "LF", "CRLF", "%", "% + CRLF"})
chkInvioRigaPerRiga.Text = "Invio riga per riga"
chkInvioRigaPerRiga.AutoSize = True
@@ -203,38 +228,19 @@ Public Class Form1
transfer.Controls.Add(txtFileRicezione, 1, 1)
transfer.Controls.Add(btnSfogliaRicezione, 2, 1)
transfer.Controls.Add(btnRicevi, 3, 1)
transfer.Controls.Add(New Label With {.Text = "Terminatore invio", .AutoSize = True, .Anchor = AnchorStyles.Left}, 0, 2)
transfer.Controls.Add(cboTerminatoreInvio, 1, 2)
transfer.Controls.Add(btnAnnulla, 3, 2)
transfer.Controls.Add(New Label With {.Text = "Pausa riga ms", .AutoSize = True, .Anchor = AnchorStyles.Left}, 0, 3)
transfer.Controls.Add(nudPausaRiga, 1, 3)
transfer.Controls.Add(chkInvioRigaPerRiga, 2, 3)
transfer.Controls.Add(New Label With {.Text = "Pausa carattere ms", .AutoSize = True, .Anchor = AnchorStyles.Left}, 0, 4)
transfer.Controls.Add(nudPausaCarattere, 1, 4)
transfer.Controls.Add(chkInvioCaratterePerCarattere, 2, 4)
transfer.Controls.Add(New Label With {.Text = "Modo Okuma READ", .AutoSize = True, .Anchor = AnchorStyles.Left}, 0, 5)
transfer.Controls.Add(chkInvioBlocchi, 1, 5)
transfer.Controls.Add(New Label With {.Text = "Dim. blocco byte", .AutoSize = True, .Anchor = AnchorStyles.Left}, 2, 5)
transfer.Controls.Add(nudDimensioneBlocco, 3, 5)
transfer.Controls.Add(New Label With {.Text = "Pausa blocco ms", .AutoSize = True, .Anchor = AnchorStyles.Left}, 0, 6)
transfer.Controls.Add(nudPausaBlocco, 1, 6)
transfer.Controls.Add(New Label With {.Text = "Fine ricez. s", .AutoSize = True, .Anchor = AnchorStyles.Left}, 2, 6)
transfer.Controls.Add(nudTimeoutInattivita, 3, 6)
transfer.Controls.Add(New Label With {.Text = "Attesa prima invio s", .AutoSize = True, .Anchor = AnchorStyles.Left}, 0, 7)
transfer.Controls.Add(nudAttesaPrimaInvio, 1, 7)
transfer.Controls.Add(btnTestConnessione, 3, 7)
transfer.Controls.Add(New Label With {.Text = "Attesa dopo invio s", .AutoSize = True, .Anchor = AnchorStyles.Left}, 0, 8)
transfer.Controls.Add(nudAttesaDopoInvio, 1, 8)
Dim hint As New Label With {
.Text = "Prima di ricevere o inviare, selezionare azienda e macchina. I parametri Moxa vengono compilati dal file JSON nello start path.",
.AutoSize = True,
.Dock = DockStyle.Fill,
.ForeColor = Color.FromArgb(70, 70, 70),
.Margin = New Padding(0, 10, 0, 0)
.Margin = New Padding(0, 8, 0, 0)
}
transfer.SetColumnSpan(hint, 4)
transfer.Controls.Add(hint, 0, 9)
transfer.SetColumnSpan(hint, 3)
transfer.Controls.Add(hint, 0, 2)
BuildTransferSettingsTab(tabParametri)
txtLog.Dock = DockStyle.Fill
txtLog.Multiline = True
@@ -268,6 +274,77 @@ Public Class Form1
Log($"Pronto. Configurazione: {ConfigPath()}")
End Sub
Private Sub BuildTransferSettingsTab(tab As TabPage)
tab.AutoScroll = True
Dim settings As New TableLayoutPanel With {
.Dock = DockStyle.Top,
.AutoSize = True,
.ColumnCount = 4,
.RowCount = 8,
.Padding = New Padding(16)
}
settings.ColumnStyles.Add(New ColumnStyle(SizeType.Absolute, 175))
settings.ColumnStyles.Add(New ColumnStyle(SizeType.Percent, 50))
settings.ColumnStyles.Add(New ColumnStyle(SizeType.Absolute, 240))
settings.ColumnStyles.Add(New ColumnStyle(SizeType.Percent, 50))
For row = 0 To 7
settings.RowStyles.Add(New RowStyle(SizeType.Absolute, 54))
Next
tab.Controls.Add(settings)
settings.Controls.Add(New Label With {.Text = "Terminatore invio", .AutoSize = True, .Anchor = AnchorStyles.Left}, 0, 0)
settings.Controls.Add(cboTerminatoreInvio, 1, 0)
settings.Controls.Add(New Label With {.Text = "Fine ricez. s", .AutoSize = True, .Anchor = AnchorStyles.Left}, 2, 0)
settings.Controls.Add(nudTimeoutInattivita, 3, 0)
settings.Controls.Add(New Label With {.Text = "Pausa riga ms", .AutoSize = True, .Anchor = AnchorStyles.Left}, 0, 1)
settings.Controls.Add(nudPausaRiga, 1, 1)
settings.Controls.Add(chkInvioRigaPerRiga, 2, 1)
settings.Controls.Add(New Label With {.Text = "Pausa carattere ms", .AutoSize = True, .Anchor = AnchorStyles.Left}, 0, 2)
settings.Controls.Add(nudPausaCarattere, 1, 2)
settings.Controls.Add(chkInvioCaratterePerCarattere, 2, 2)
settings.Controls.Add(New Label With {.Text = "Modo Okuma READ", .AutoSize = True, .Anchor = AnchorStyles.Left}, 0, 3)
settings.Controls.Add(chkInvioBlocchi, 1, 3)
settings.Controls.Add(New Label With {.Text = "Dim. blocco byte", .AutoSize = True, .Anchor = AnchorStyles.Left}, 2, 3)
settings.Controls.Add(nudDimensioneBlocco, 3, 3)
settings.Controls.Add(New Label With {.Text = "Pausa blocco ms", .AutoSize = True, .Anchor = AnchorStyles.Left}, 0, 4)
settings.Controls.Add(nudPausaBlocco, 1, 4)
settings.Controls.Add(New Label With {.Text = "Attesa prima invio s", .AutoSize = True, .Anchor = AnchorStyles.Left}, 0, 5)
settings.Controls.Add(nudAttesaPrimaInvio, 1, 5)
settings.Controls.Add(New Label With {.Text = "Attesa dopo invio s", .AutoSize = True, .Anchor = AnchorStyles.Left}, 0, 6)
settings.Controls.Add(nudAttesaDopoInvio, 1, 6)
settings.Controls.Add(btnTestConnessione, 2, 7)
cboTerminatoreInvio.Dock = DockStyle.Fill
For Each numericControl In {nudTimeoutInattivita, nudPausaRiga, nudPausaCarattere, nudDimensioneBlocco, nudPausaBlocco, nudAttesaPrimaInvio, nudAttesaDopoInvio}
numericControl.Dock = DockStyle.Fill
numericControl.Font = New Font(Font.FontFamily, 11.0F)
numericControl.Margin = New Padding(3, 10, 3, 10)
Next
For Each checkControl In {chkInvioRigaPerRiga, chkInvioCaratterePerCarattere, chkInvioBlocchi}
checkControl.Anchor = AnchorStyles.Left
checkControl.Font = New Font(Font.FontFamily, 11.0F)
Next
End Sub
Private Shared Sub ConfigureTouchCombo(combo As ComboBox)
combo.DropDownStyle = ComboBoxStyle.DropDownList
combo.DrawMode = DrawMode.OwnerDrawFixed
combo.ItemHeight = 42
combo.Font = New Font(SystemFonts.MessageBoxFont.FontFamily, 12.0F)
combo.Margin = New Padding(3, 5, 3, 5)
AddHandler combo.DrawItem,
Sub(sender, e)
If e.Index < 0 Then Return
e.DrawBackground()
Dim selected = (e.State And DrawItemState.Selected) = DrawItemState.Selected
Dim color = If(selected, SystemColors.HighlightText, SystemColors.ControlText)
Dim bounds = New Rectangle(e.Bounds.Left + 8, e.Bounds.Top, e.Bounds.Width - 12, e.Bounds.Height)
TextRenderer.DrawText(e.Graphics, combo.GetItemText(combo.Items(e.Index)), combo.Font, bounds, color,
TextFormatFlags.Left Or TextFormatFlags.VerticalCenter Or TextFormatFlags.EndEllipsis)
e.DrawFocusRectangle()
End Sub
End Sub
Private Function BuildMainMenu() As MenuStrip
Dim menu As New MenuStrip()
Dim strumenti As New ToolStripMenuItem("Strumenti")
@@ -304,11 +381,10 @@ Public Class Form1
root.RowStyles.Add(New RowStyle(SizeType.AutoSize))
tab.Controls.Add(root)
Dim selectors As New TableLayoutPanel With {.Dock = DockStyle.Top, .ColumnCount = 4, .RowCount = 2, .AutoSize = True}
Dim selectors As New TableLayoutPanel With {.Dock = DockStyle.Top, .ColumnCount = 3, .RowCount = 2, .AutoSize = True}
selectors.ColumnStyles.Add(New ColumnStyle(SizeType.AutoSize))
selectors.ColumnStyles.Add(New ColumnStyle(SizeType.Percent, 100))
selectors.ColumnStyles.Add(New ColumnStyle(SizeType.AutoSize))
selectors.ColumnStyles.Add(New ColumnStyle(SizeType.Absolute, 150))
root.Controls.Add(selectors, 0, 0)
ConfigureButton(btnSfogliaModifica, "Sfoglia")
@@ -882,8 +958,9 @@ Public Class Form1
Private Shared Sub ConfigureButton(button As Button, text As String)
button.Text = text
button.AutoSize = True
button.MinimumSize = New Size(110, 32)
button.Margin = New Padding(8, 3, 0, 3)
button.Font = New Font(SystemFonts.MessageBoxFont.FontFamily, 11.0F)
button.MinimumSize = New Size(120, 48)
button.Margin = New Padding(6, 4, 0, 4)
End Sub
Private Sub SelectInputFile(sender As Object, e As EventArgs)