21/11/19 11:08
1/2copiatore
Buongiorno a tutti
per capire come funzionano meglio le cose, ho momentaneamente sospeso il progetto dell'archivio monete, e ne ho intrapeso un'altro che mi sembrava più semplice.
Questo nuovo progetto consiste, in base all'oggetto e in base al suo livello, di calcolare quante risorse sono neccessarie.
Per realizzare questo, ho creato 4 tabelle:
1- "TB_Oggetti" con campo 'Descrizione' associato a un combobox, i rimanenti campi associati a delle labelbox(per visualizzare i corretti movimenti);
2- "TB_Metalli" per la sola modifica delle intestazioni dei DataGridView;
3- "TB_Quantità" per popolare il relativo datagrid (quello a destra del form "DGV_Quantità" contenente in base all'oggetto selezionato nel combo le relative quantità dei materiali neccessari per ogni livello;
4- "TB_Posseduto" per popolare il datagrid (quello a sinistra del form "DGV_Posseduto" dove viene visualizzate le quantità dei materiali che sono già in mio possesso.
Ora veniamo alle anomalie riscontrate (inserisco dei savescreen per vedere meglio la cosa)
1- (savescreen VB1) all'avvio, si nota subito che nel datagrid dei posseduti l'ultima colonna dell'intestazione non è allineata al centro come le altre e nell'altro datagrid, tutti gli altri dati sono correttamente visualizzati, mentre, dopo il punto 2 è corretta si vede nel savescreen3;
2- (savescreen VB2) selezionando un'altro oggetto con il combobox si aggiornano il combo e le relative label, ma non si aggiornano le intestazioni dei datagrid, mentre se clicco seconda volta sul combo (non sulla sua casella di apertura della lista) si aggiornano anche le intestazioni dei datagrid (savescreen 3), premetto che qui ho usato l'evento Click del combo in quanto l'evento SelectedIndexChanged mi creava ancora più problemi;
3- (savescreen 4) guardate la lista del combo !!! è tutta incasinata.
ora posto anche il listato
Spero di esser stato chiaro, qualcuno mi sa spiegare la cosa? e come rimediare?
OPS Ho notato ora che si puo visualizza un solo savescreen
per capire come funzionano meglio le cose, ho momentaneamente sospeso il progetto dell'archivio monete, e ne ho intrapeso un'altro che mi sembrava più semplice.
Questo nuovo progetto consiste, in base all'oggetto e in base al suo livello, di calcolare quante risorse sono neccessarie.
Per realizzare questo, ho creato 4 tabelle:
1- "TB_Oggetti" con campo 'Descrizione' associato a un combobox, i rimanenti campi associati a delle labelbox(per visualizzare i corretti movimenti);
2- "TB_Metalli" per la sola modifica delle intestazioni dei DataGridView;
3- "TB_Quantità" per popolare il relativo datagrid (quello a destra del form "DGV_Quantità" contenente in base all'oggetto selezionato nel combo le relative quantità dei materiali neccessari per ogni livello;
4- "TB_Posseduto" per popolare il datagrid (quello a sinistra del form "DGV_Posseduto" dove viene visualizzate le quantità dei materiali che sono già in mio possesso.
Ora veniamo alle anomalie riscontrate (inserisco dei savescreen per vedere meglio la cosa)
1- (savescreen VB1) all'avvio, si nota subito che nel datagrid dei posseduti l'ultima colonna dell'intestazione non è allineata al centro come le altre e nell'altro datagrid, tutti gli altri dati sono correttamente visualizzati, mentre, dopo il punto 2 è corretta si vede nel savescreen3;
2- (savescreen VB2) selezionando un'altro oggetto con il combobox si aggiornano il combo e le relative label, ma non si aggiornano le intestazioni dei datagrid, mentre se clicco seconda volta sul combo (non sulla sua casella di apertura della lista) si aggiornano anche le intestazioni dei datagrid (savescreen 3), premetto che qui ho usato l'evento Click del combo in quanto l'evento SelectedIndexChanged mi creava ancora più problemi;
3- (savescreen 4) guardate la lista del combo !!! è tutta incasinata.
ora posto anche il listato
Public Class Principale Private Sub Principale_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'TODO: questa riga di codice carica i dati nella tabella 'Empire1DataSet.TB_Materiali'. È possibile spostarla o rimuoverla se necessario. Me.TB_MaterialiTableAdapter.Fill(Me.Empire1DataSet.TB_Materiali) Me.TB_QuantitàTableAdapter.Fill(Me.Empire1DataSet.TB_Quantità) Me.TB_OggettiTableAdapter.Fill(Me.Empire1DataSet.TB_Oggetti) Me.TB_PossedutoTableAdapter.Fill(Me.Empire1DataSet.TB_Posseduto) Me.Location = New Point(150, 85) 'queste sono righe provvisorie e servono per il popolamento dei datatable If Me.Empire1DataSet.TB_Materiali.Count = 0 Then CaricaTB_Materiali(TB_MaterialiTableAdapter) If Me.Empire1DataSet.TB_Quantità.Count = 0 Then CaricaTB_Quantità(TB_QuantitàTableAdapter) If Me.Empire1DataSet.TB_Oggetti.Count = 0 Then CaricaTB_Oggetti(TB_OggettiTableAdapter) If Me.Empire1DataSet.TB_Posseduto.Count = 0 Then CaricaTB_Posseduto(TB_PossedutoTableAdapter) Modifica_DGV() End Sub Private Sub Modifica_DGV() 'Cambia allineamento/colori/carattere alle righe d'intestazione dei DataGridView With DGV_Quantita.ColumnHeadersDefaultCellStyle .Alignment = DataGridViewContentAlignment.MiddleCenter .BackColor = Color.Navy .ForeColor = Color.White .Font = New Font(DGV_Quantita.Font, FontStyle.Bold) End With DGV_Quantita.EnableHeadersVisualStyles = False With DGV_Posseduto.ColumnHeadersDefaultCellStyle .Alignment = DataGridViewContentAlignment.MiddleCenter .BackColor = Color.Navy .ForeColor = Color.White .Font = New Font(DGV_Posseduto.Font, FontStyle.Bold) End With DGV_Posseduto.EnableHeadersVisualStyles = False 'allinea i dati: 1° colonna al centro, le altre a destra For Col As Integer = 1 To 7 If Col = 1 Then DGV_Posseduto.Columns(Col).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter Else DGV_Posseduto.Columns(Col).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight End If Next For Col As Integer = 1 To 8 If Col = 1 Then DGV_Quantita.Columns(Col).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter Else DGV_Quantita.Columns(Col).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight End If Next 'cambia testi intestazioni ai DataGridView If Me.Empire1DataSet.TB_Posseduto.Count > 0 And Me.Empire1DataSet.TB_Quantità.Count > 0 Then For col As Integer = 2 To 7 DGV_Posseduto.Columns(col).HeaderText = CType(Me.Empire1DataSet.TB_Materiali.Rows(Val(lbl_ID_Materiali.Text) - 1)(col), String) DGV_Quantita.Columns(col + 1).HeaderText = CType(Me.Empire1DataSet.TB_Materiali.Rows(Val(lbl_ID_Materiali.Text) - 1)(col), String) Next End If End Sub Private Sub cmbOggetti_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmbOggetti.Click Modifica_DGV() End Sub Private Sub btnEsci_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEsci.Click Application.Exit() End Sub Private Sub bntMateriali_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bntMateriali.Click FrmMateriali.Show() End Sub Private Sub bntOggetti_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bntOggetti.Click FrmOggetti.Show() End Sub Private Sub bntQuantità_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bntQuantità.Click FrmPosseduto.Show() End Sub Private Sub btnSalva_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSalva.Click Me.Validate() Me.TB_PossedutoBindingSource.EndEdit() Me.TableAdapterManager.UpdateAll(Me.Empire1DataSet) End Sub 'Private Sub cmbOggetti_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles _ cmbOggetti.SelectedIndexChanged ' Modifica_DGV() 'End Sub End Class
Spero di esser stato chiaro, qualcuno mi sa spiegare la cosa? e come rimediare?
OPS Ho notato ora che si puo visualizza un solo savescreen
Ultima modifica effettuata da 1/2copiatore 21/11/19 11:48
aaa