- Tengo un form principal "Usuarios" que contiene un flowlayout panel, el cual se carga con un control de usuario que trae los datos mediante linq de SQL.
- Tengo un segundo form "Gestion_usuarios" que se puede abrir de dos formas:
*Mediante doble clic en el control de usuario (Se abre para editar los datos de ese usuario en concreto).
*Mediante un boton que en el form principal (Para añadir un usuario nuevo).
Lo que necesito es que al darle al boton guardar del form "Gestion_usuarios" me actualice el form "Usuarios" con los cambios que hayan hecho en la BD.
Muchas gracias a todos por la ayuda.
El código es el siguiente:
Cita:
User_Control
public partial class Comercial_CU : UserControl
{
public Comercial_CU(string nombre, string turno, Image imagen)
{
InitializeComponent();
lbl_nombre.Text = nombre;
lbl_turno.Text = turno;
if (imagen != null)
{
pB_foto.Image = imagen;
}
}
private void Comercial_CU_Load(object sender, EventArgs e)
{
this.lbl_nombre.DoubleClick += Pinchar;
this.lbl_turno.DoubleClick += Pinchar;
this.pB_foto.DoubleClick += Pinchar;
this.DoubleClick += Pinchar;
}
private void Pinchar(object sender, EventArgs e)
{
Gestion_Comerciales gc = new Gestion_Comerciales();
gc.nComercial = lbl_nombre.Text;
gc.ShowDialog();
}
}
Form Principal "Usuarios"
public partial class Comerciales : Form
{
SQLDataContext s = new SQLDataContext();
public Comerciales()
{
InitializeComponent();
}
private void Comerciales_Load(object sender, EventArgs e)
{
fLP_panel.Controls.Clear();
var comerciales = from cm in s.Operadoras
join t in s.Turnos on cm.Turno equals t.Uid
select new
{
comercial = cm.Nombre,
turno = t.Descripcion,
foto = cm.Foto
};
foreach (var com in comerciales)
{
Image foto = null;
if(com.foto != null)
{
foto = this.CargarImagen(com.foto.ToArray());
}
Comercial_CU op = new Comercial_CU(com.comercial, com.turno, foto);
fLP_panel.Controls.Add(op);
Application.DoEvents();
}
}
private void bt_ok_Click(object sender, EventArgs e)
{
this.Close();
}
private void bt_nuevo_Click(object sender, EventArgs e)
{
Gestion_Comerciales gc = new Gestion_Comerciales();
gc.ShowDialog();
}
private Image CargarImagen(byte[] img)
{
Bitmap bmp = null;
byte[] bytes = (byte[])(img);
MemoryStream ms = new MemoryStream(bytes);
bmp = new Bitmap(ms);
return bmp;
}
}
Form Secundario "Gestion_usuarios"
private void bt_aceptar_Click(object sender, EventArgs e)
{
byte[] imagen = null;
if (pb_foto.Image != null)
{
imagen = this.GuardarImagen(pb_foto.Image);
}
if (_nComercial == null)
{
Operadoras operadora = new Operadoras();
operadora.Nombre = txt_nombre.Text;
operadora.Empresa = cmb_empresa.SelectedItem.ToString();
if (txt_dni.Text != "")
{
operadora.DNI = txt_dni.Text;
}
if (txt_direccion.Text != "")
{
operadora.Direccion = txt_direccion.Text;
}
if (txt_telefono.Text != "")
{
operadora.Telefono = txt_telefono.Text;
}
if (txt_comentarios.Text != "")
{
operadora.Comentarios = txt_comentarios.Text;
}
if (imagen != null)
{
operadora.Foto = imagen;
}
Turnos turno = s.Turnos.Single(trn => trn.Descripcion == cmb_turno.SelectedItem.ToString());
turno.Operadoras.Add(operadora);
s.SubmitChanges();
}
else
{
Operadoras operadora = s.Operadoras.Single(opr => opr.Nombre == _nComercial);
operadora.Nombre = txt_nombre.Text;
operadora.Empresa = cmb_empresa.SelectedItem.ToString();
if (txt_dni.Text != "")
{
operadora.DNI = txt_dni.Text;
}
if (txt_direccion.Text != "")
{
operadora.Direccion = txt_direccion.Text;
}
if (txt_telefono.Text != "")
{
operadora.Telefono = txt_telefono.Text;
}
if (txt_comentarios.Text != "")
{
operadora.Comentarios = txt_comentarios.Text;
}
if (imagen != null)
{
operadora.Foto = imagen;
}
else
{
operadora.Foto = null;
}
Turnos turno = s.Turnos.Single(trn => trn.Descripcion == cmb_turno.SelectedItem.ToString());
turno.Operadoras.Add(operadora);
s.SubmitChanges();
}
this.Close();
}
public partial class Comercial_CU : UserControl
{
public Comercial_CU(string nombre, string turno, Image imagen)
{
InitializeComponent();
lbl_nombre.Text = nombre;
lbl_turno.Text = turno;
if (imagen != null)
{
pB_foto.Image = imagen;
}
}
private void Comercial_CU_Load(object sender, EventArgs e)
{
this.lbl_nombre.DoubleClick += Pinchar;
this.lbl_turno.DoubleClick += Pinchar;
this.pB_foto.DoubleClick += Pinchar;
this.DoubleClick += Pinchar;
}
private void Pinchar(object sender, EventArgs e)
{
Gestion_Comerciales gc = new Gestion_Comerciales();
gc.nComercial = lbl_nombre.Text;
gc.ShowDialog();
}
}
Form Principal "Usuarios"
public partial class Comerciales : Form
{
SQLDataContext s = new SQLDataContext();
public Comerciales()
{
InitializeComponent();
}
private void Comerciales_Load(object sender, EventArgs e)
{
fLP_panel.Controls.Clear();
var comerciales = from cm in s.Operadoras
join t in s.Turnos on cm.Turno equals t.Uid
select new
{
comercial = cm.Nombre,
turno = t.Descripcion,
foto = cm.Foto
};
foreach (var com in comerciales)
{
Image foto = null;
if(com.foto != null)
{
foto = this.CargarImagen(com.foto.ToArray());
}
Comercial_CU op = new Comercial_CU(com.comercial, com.turno, foto);
fLP_panel.Controls.Add(op);
Application.DoEvents();
}
}
private void bt_ok_Click(object sender, EventArgs e)
{
this.Close();
}
private void bt_nuevo_Click(object sender, EventArgs e)
{
Gestion_Comerciales gc = new Gestion_Comerciales();
gc.ShowDialog();
}
private Image CargarImagen(byte[] img)
{
Bitmap bmp = null;
byte[] bytes = (byte[])(img);
MemoryStream ms = new MemoryStream(bytes);
bmp = new Bitmap(ms);
return bmp;
}
}
Form Secundario "Gestion_usuarios"
private void bt_aceptar_Click(object sender, EventArgs e)
{
byte[] imagen = null;
if (pb_foto.Image != null)
{
imagen = this.GuardarImagen(pb_foto.Image);
}
if (_nComercial == null)
{
Operadoras operadora = new Operadoras();
operadora.Nombre = txt_nombre.Text;
operadora.Empresa = cmb_empresa.SelectedItem.ToString();
if (txt_dni.Text != "")
{
operadora.DNI = txt_dni.Text;
}
if (txt_direccion.Text != "")
{
operadora.Direccion = txt_direccion.Text;
}
if (txt_telefono.Text != "")
{
operadora.Telefono = txt_telefono.Text;
}
if (txt_comentarios.Text != "")
{
operadora.Comentarios = txt_comentarios.Text;
}
if (imagen != null)
{
operadora.Foto = imagen;
}
Turnos turno = s.Turnos.Single(trn => trn.Descripcion == cmb_turno.SelectedItem.ToString());
turno.Operadoras.Add(operadora);
s.SubmitChanges();
}
else
{
Operadoras operadora = s.Operadoras.Single(opr => opr.Nombre == _nComercial);
operadora.Nombre = txt_nombre.Text;
operadora.Empresa = cmb_empresa.SelectedItem.ToString();
if (txt_dni.Text != "")
{
operadora.DNI = txt_dni.Text;
}
if (txt_direccion.Text != "")
{
operadora.Direccion = txt_direccion.Text;
}
if (txt_telefono.Text != "")
{
operadora.Telefono = txt_telefono.Text;
}
if (txt_comentarios.Text != "")
{
operadora.Comentarios = txt_comentarios.Text;
}
if (imagen != null)
{
operadora.Foto = imagen;
}
else
{
operadora.Foto = null;
}
Turnos turno = s.Turnos.Single(trn => trn.Descripcion == cmb_turno.SelectedItem.ToString());
turno.Operadoras.Add(operadora);
s.SubmitChanges();
}
this.Close();
}