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 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171
|
// Form MAIN
public partial class MainFormAdd : Form
{
private List<Form> ownedForms = new List<Form>();
public MainFormAdd()
{
InitializeComponent();
ownedForms.Add(new FormUpdate());
ownedForms.Add(new FormDelete());
foreach (var item in ownedForms)
{
this.AddOwnedForm(item);
}
}
private void btnLoadProduits_Click(object sender, EventArgs e)
{
BindRefresh();
}
//TOUT BINDING EST FAIT REELLEMENT PAR L'API SUR LA COUCHE DATAVIEW "INTERPOSÉE" EN INTERNE SUR TOUTE SOURCE DE BINDING ICI LA DATATABLE PRODUITS
//ICI JE L'EXPLICITE !!!
private void BindRefresh()
{
// Configation de la maudite DataView
//si on met false le DGV deviendra un socle en pierre !!!
Program.StoreDB.Produits.DefaultView.AllowNew = true;//ajout dans dgv autorisee
Program.StoreDB.Produits.DefaultView.AllowDelete = true;//"Delete" dans dgv autorisee non suppressionou remove (voir FormDelete et btnDelete)
Program.StoreDB.Produits.DefaultView.AllowEdit = true; //edition dans dgv autorisee
this.dataGridView1.DataSource = Program.StoreDB.Produits.DefaultView;
this.dataGridView1.DataBindings.DefaultDataSourceUpdateMode = DataSourceUpdateMode.OnPropertyChanged;
}
private void btnShowFormUpdate_Click_1(object sender, EventArgs e)
{
ownedForms[0].Show();
}
private void btnShowFormDelete_Click(object sender, EventArgs e)
{
ownedForms[1].Show();
}
private void btnAddProduit_Click(object sender, EventArgs e)
{
lblMessage.Text = "";
DataRow dr = Program.StoreDB.Produits.NewRow();
//NOTA BENE :dr["ID"] un champ cle autoincremente en base n'est pas specifie
dr["Description"] = "newDesc";
dr["HostName"] = "new item";
dr["PortFTP"] = "1500";
Program.StoreDB.Produits.Rows.Add(dr);
Program.StoreDB.Update();
lblMessage.Text = Program.StoreDB.Message;
BindRefresh();
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
foreach (var item in ownedForms)
{
this.RemoveOwnedForm(item);
}
}
}
//
public partial class FormUpdate : Form
{
//FORM OWNED 1
public FormUpdate()
{
InitializeComponent();
}
private void FormUpdate_Load(object sender, EventArgs e)
{
BindRefresh();
}
private void BindRefresh()
{
this.dataGridView1.DataSource = Program.StoreDB.Produits.DefaultView;
this.dataGridView1.DataBindings.DefaultDataSourceUpdateMode = DataSourceUpdateMode.OnPropertyChanged;
}
private void btnUpdate_Click(object sender, EventArgs e)
{
if (dataGridView1.SelectedRows.Count > 0)
{
DataRow dr = ((DataRowView)dataGridView1.SelectedRows[0].DataBoundItem).Row;
Program.StoreDB.Update();
lblMessage.Text = Program.StoreDB.Message;
BindRefresh();
}
}
private void btnHide_Click(object sender, EventArgs e)
{
this.Hide();
}
private void FormUpdate_FormClosing(object sender, FormClosingEventArgs e)
{
e.Cancel = true;
}
}
//
public partial class FormDelete : Form
{
public FormDelete()
{
InitializeComponent();
}
private void FormDelete_Load(object sender, EventArgs e)
{
BindRefresh();
}
private void BindRefresh()
{
this.dataGridView1.DataSource = Program.StoreDB.Produits.DefaultView;
this.dataGridView1.DataBindings.DefaultDataSourceUpdateMode = DataSourceUpdateMode.OnPropertyChanged;
}
private void btnDelete_Click(object sender, EventArgs e)
{
if (dataGridView1.SelectedRows.Count > 0)
{
// un Row.Delete suffit !!!
DataRow dr = ((DataRowView)dataGridView1.SelectedRows[0].DataBoundItem).Row;
dr.Delete();
Program.StoreDB.Update();
lblMessage.Text = Program.StoreDB.Message;
BindRefresh();
}
}
private void btnHide_Click(object sender, EventArgs e)
{
this.Hide();
}
private void Form3_FormClosing(object sender, FormClosingEventArgs e)
{
e.Cancel = true;
}
} |
Partager