• Sábado 18 de Abril de 2026, 16:45

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - kancerman

Páginas: [1]
1
C# / datagrid en user control
« en: Jueves 19 de Abril de 2012, 21:17 »
hola a todos tengo un problemilla que paso a describir

tengo un user control que lo unico que tiene es un datagrid con datos que se cargan desde base de datos,
el datagrid tiene 2 columnas una con descripcion y la otra con checkbox esta ultima columna tiene como id "checkboxSelect"
cree un metodo que recorre el datagrid y guarda la descripcion de las filas seleccionadas en la columna "checkboxSelect" y devuelve esta lista.
el problema es que desde el aspx donde tengo incrustado el user control llamo al metodo del usercontrol pero no me reconoce las filas seleccionadas adjunto el codigo del recorrido del datagrid, este mismo metodo lo probe con un datagrid en el mismo aspx me refiero no dentro de un user control y funciona perfectamente
Código: C#
  1.         DataGridItemCollection items = dataGrid1.Items;
  2.         for (int i = 0; i < items.Count; i++)
  3.         {
  4.             CheckBox cb = (CheckBox)items[i].FindControl("checkboxSelect");
  5.             string descripcion = items[i].Cells[1].Text;
  6.             if ((cb != null) && cb.Checked)
  7.             {
  8.                 lista.Add(descripcion);
  9.             }
  10.         }
  11.  

ojala puedan ayudarme y de antemano muchas gracias

2
C# / cambiar color de botones
« en: Miércoles 13 de Julio de 2011, 02:48 »
estoy haciendo un gestor de habitaciones y para cada habitacion hay un boton que al pulsarlo abre un groupbox donde se puede ocupar la habitacion y todo eso
el punto es que lo guardo en la base de datos y necesito que al iniciar el programa cambie de color los botones de las habitaciones que estan ocupadas,
Código: C#
  1.  
  2.  
  3.             string connectionString = "Dsn=PostgreSQL35W3;uid=postgres;pwd=postgres";
  4.             OdbcConnection myConn = new OdbcConnection(connectionString);
  5.             string sql = "select id_cabanha from mirage.cabanha where id_estado=2";
  6.             OdbcCommand myCommand = new OdbcCommand(sql, myConn);
  7.             myConn.Open();
  8.             OdbcDataReader select = myCommand.ExecuteReader();
  9.             while (select.Read())
  10.             {
  11.                 for (int i = 0; (i < (select.FieldCount)); i++)
  12.                     {
  13.                         MessageBox.Show("BT_" + Convert.ToString(select.GetValue(i)));
  14.                         this.Controls["BT_" + Convert.ToString(select.GetValue(i))].BackColor = Color.Green;
  15.                        
  16.                     }
  17.             }
  18.             myCommand.Connection.Close();
  19.             myConn.Close();
  20.  
  21.  

como ven hago la consulta me devuelve los resultados pare eso puse un messagebox para asegurarme que me estaba devolviendo los datos correctos pero no me realiza el cambio de color

algun comentario?

3
C# / calculo de horas en datetimepicker
« en: Martes 21 de Junio de 2011, 07:13 »
tengo que calcular 160 horas entre 2 datetimepicker uno de inicio y uno de termino o sea que cuando cambie el de inicio se cambie el de termino sumandole 160 horas pero no es tan sencillo ya que estas horas solo se suman 4 horas de lunes a viernes y 5 horas cada sabado, los domingos no suman
el codigo que hice es el siguiente
Código: C#
  1. dateTimePicker2.Value = dateTimePicker1.Value.AddDays(45);
  2.  
el 45 lo saque asi
de lunes a viernes son 4 horas diarias por lo tanto son 20 horas mas las 5 del domingo son 25 por lo tanto 160/25 son 6.4 semanas lo que son aprox 45 dias
el problema es que derepente me da la fecha correcta y de repente le faltan 1 o 2 dias y si le sumo al 45 1 dia obviamente pasa lo mismo que derepente sale bien y derepente sale con 1 dia mas

ojala puedan ayudarme ya que toy con este problema atascado y necesito una opinion externa a lo mejor otra forma de sacar el calculo de los dias

saludos y gracias

4
C# / Re: restar celda de datagridview
« en: Viernes 15 de Abril de 2011, 06:53 »
hola
gracias por responder

con la primera opcion que me diste me tira error de indice fuera de rango "Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index"

y con el segundo me pasa lo mismo que al principio toma la primera y la segunda fila con el mismo indice 0


gracias

EDIT: alguna idea? tadabia no logro solucionar el problema

5
C# / restar celda de datagridview
« en: Jueves 14 de Abril de 2011, 08:04 »
hola
tengo un datagridview con datos que ingreso desde el mismo form, una columna es "total" y tiene el indice 3 , esta columna la sumo con un boton y el resultado lo asigno a un textbox
Código: C#
  1.  
  2. int sum = 0;
  3.             for (int i = 0; i < dataGridView2.RowCount; i++)
  4.             {
  5.                 sum = sum + int.Parse(dataGridView2.Rows[i].Cells[3].Value.ToString());
  6.             }
  7.             textBox19.Text = sum.ToString();
  8.  
  9.  
el asunto es que con otro boton necesito restar el valor de la celda "total" de la fila seleccionada y lo hago asi
Código: C#
  1.  
  2. textBox19.Text = Convert.ToInt32(textBox19.Text) - Convert.ToInt32(dataGridView2[3,dataGridView2.CurrentCellAddress.Y].Value);
  3.  
  4.  

el problema es que
Código: C#
  1. dataGridView2.CurrentCellAddress.Y
  2.  
siempre me da 1 menos , por ejemplo si el indice es 2 , me arroja un 1 por lo tanto me resta la fila siguiente lo extraño es que probe el mismo codigo en un boton para que me mostrara los indices y en ese boton me los muestra correctamente.
aqui el codigo del boton mencionado
Código: C#
  1.  
  2. MessageBox.Show("equis = " + dataGridView2.CurrentCellAddress.X + "y = " + dataGridView2.CurrentCellAddress.Y);
  3.  
  4.  
probe tambien con
Código: C#
  1. DataGridView2.CurrentRow.Index
  2.  
y ocurre lo mismo
gracias de antemano

6
C# / problema con datagridview SOLUCIONADO
« en: Domingo 13 de Marzo de 2011, 23:50 »
tengo un datagridview que lo cargo desde una base de datos, necesito que al hacer click me guarde en una variable uno de los campos de la fila seleccionada
el problema es que me los carga cuando quiere osea algunas veces al hacer click los carga pero otras veces al hacer click no los carga
el codigo es el siguiente
Código: C#
  1.  
  2. private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
  3.         {
  4.            
  5.            
  6.             ru = Convert.ToInt32(this.dataGridView1.CurrentRow.Cells[3].Value);
  7.            
  8.         }
  9.  
  10.  

ojala puedan ayudarme

gracias



EDIT!!!! ya los solucione , para el que este en el mismo problema tube que ocupar el evento cellclick no el cellcontentclick y ahi funciono les dejo el codigo
Código: C#
  1.  
  2. private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
  3.         {
  4.  
  5.            
  6.             ru = Convert.ToInt32(this.dataGridView1.CurrentRow.Cells[3].Value);
  7.            
  8.         }
  9.  
  10.  

saludos

7
C# / axcalendar
« en: Lunes 7 de Marzo de 2011, 06:38 »
hola
habia empezado a trabajar con el calendar control 10.0 y logre varias cosas como obtener año , mes , dia , seleccionar un dia y que me mostrara las citas que habian para ese dia sacando la informacion de una base de datos , pero despues de romperme la cabeza horas y horas he descubierto que al parecer lo que necesito no se puede hacer con este control, esto es ya sea colorear el numero de ciertos dias o el fondo de ciertos dias, es imposible (o al menos para mi)
y con el monthcalendar que trae por defecto el VS solo se puede poner en negrita los dias pero no se nota casi nada y aparte que no se puede ni agrandar.
alguna idea si conocen algun ocx de calendarios porque ya me estoy haciendo la idea de hacer uno de 0.

gracias

PD: probe uno que se llama xp calendar que se veia bastante bien pero no lo pude importar al momento de ocuparlo me tira un error de que no esta registrado

8
C# / Re: copiar un archivo y luego volver a usarlo
« en: Domingo 6 de Marzo de 2011, 22:13 »
muchas gracias he aprendido muchisimo en este foro

9
C# / Re: listbox
« en: Domingo 6 de Marzo de 2011, 22:12 »
muchas gracias a ambos por las respuestas la verdad lo hice como lo recomendo josselo llene el listbox con los nombres solamentey en el evento click agrege la ruta pero el ejemplo de gabio 2 igual lo utilize solo para aprender ya que no habia ocupado nunca el listview y veo que es muy util

muchas gracias a ambos

10
C# / listbox
« en: Domingo 6 de Marzo de 2011, 05:30 »
una consulta para los maestros los listbox tienen alguna propiedad que guarde el valor de cada item aparte del text, lo que quiero es lo siguiente
en un listbox muestro los archivos de un directorio , lo cual lo tengo echo pero por motivos de diseño no quiero que muestre la ruta pero al seleccionar el archivo si ocupo la ruta de este por lo tanto no se si se podra guardar en alguna parte del listbox esa informacion sin mostrarla, no se si me entienden me enrede un poco
por ejemplo un archivo "c:archivo.txt" pero quiero mostrar solo "archivo.txt" pero tambien necesito utilizar la ruta completa

gracias

11
C# / Re: copiar un archivo y luego volver a usarlo
« en: Domingo 6 de Marzo de 2011, 01:34 »
hola gracias por responder y de ahora en adelante voy a poner el codigo como corresponde, le elimine los slash dobles pero el problema continua

Código: C#
  1.  
  2. //copio el docuemnto original a uno temporal y lo abro
  3. object doNotSaveChanges = Word.WdSaveOptions.wdDoNotSaveChanges;
  4. object saveChanges = Word.WdSaveOptions.wdSaveChanges;
  5. System.IO.File.Copy("C:\documentos\prueba.docx", "c:\documentos\temp.doc", true);
  6. Word.Application wordApp = new Word.Application();
  7. Word.Document aDoc = null;
  8. object filename = "c:\documentos\temp.doc";
  9.  
  10. //edito el documento
  11. if (System.IO.File.Exists((string)filename))
  12. {
  13. object readOnly = false;
  14. object isVisible = false;
  15. aDoc = wordApp.Documents.Open(ref filename, ref readOnly, ref isVisible);
  16. aDoc.Activate();
  17. this.FindAndReplace(wordApp, "<fecha>", dateTimePicker1.Text);
  18. this.FindAndReplace(wordApp, "<nombre>", TB_Nombre_Cotizacion_Nueva.Text.Trim());
  19. this.FindAndReplace(wordApp, "<tipo_evento>", CB_tipo_evento_Cotizacion_Nueva.Text.Trim());
  20. this.FindAndReplace(wordApp, "<precio>", TB_Precio_Cotizacion_Nueva.Text.Trim());
  21. aDoc.Save();
  22. //cierro el documento
  23. ((Word._Document)aDoc).Close();
  24. System.Runtime.InteropServices.Marshal.ReleaseComObject(aDoc);
  25.  
  26. }
  27. else
  28. {
  29. MessageBox.Show("El archivo no existe.", "No Existe", MessageBoxButtons.OK, MessageBoxIcon.Information);
  30.  
  31. }
  32. //copio el temporal a uno final que sera el que se envia
  33. System.IO.File.Copy("C:\documentos\temp.doc", "c:\documentos\cotizacion " + TB_Nombre_Cotizacion_Nueva.Text + ".doc", true);
  34. //envio el documento
  35. Enviar(TB_Enviar_Cotizacion_Nueva.Text);
  36.  
  37. //esta es metodo para enviar
  38. public static bool Enviar(string a)
  39. {
  40.  
  41. string PathFile = @"c:\documentos\"+TB_Nombre_Cotizacion_Nueva.Text +".doc";
  42. System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage();
  43.  
  44. msg.To.Add(a);
  45.  
  46. msg.From = new MailAddress("luisbazanmontana@gmail.com", "", System.Text.Encoding.UTF8);
  47. msg.SubjectEncoding = Encoding.UTF8;
  48.  
  49. msg.Subject = "Cotizacion";
  50.  
  51. msg.SubjectEncoding = System.Text.Encoding.UTF8;
  52.  
  53. msg.Body = "Mensaje del correo";
  54.  
  55. msg.BodyEncoding = System.Text.Encoding.UTF8;
  56.  
  57. msg.IsBodyHtml = false;
  58.  
  59. Attachment Data = new Attachment(PathFile);
  60.  
  61. msg.Attachments.Add(Data);
  62.  
  63. SmtpClient client = new SmtpClient();
  64.  
  65. client.UseDefaultCredentials = false;
  66.  
  67. client.Credentials = new System.Net.NetworkCredential("micorreo@gmail.com", "mipass");
  68.  
  69. client.Port = 587;
  70.  
  71. client.Host = "smtp.gmail.com";
  72.  
  73. client.EnableSsl = true;
  74.  
  75.  
  76. try
  77. {
  78.  
  79. client.Send(msg);
  80. MessageBox.Show("Se ha enviado exitosamente ");
  81. return true;
  82. }
  83. catch (System.Net.Mail.SmtpException ex)
  84. {
  85. MessageBox.Show("No se mando"+ex, "No Existe", MessageBoxButtons.OK, MessageBoxIcon.Information);
  86. return false;
  87. }
  88. }
  89.  
  90.  



EDIT: ya lo arregle gracias a todos los que me ayudaron
por si a alguien le ocurre lo mismo esta fue la solucion
al crear el attachment data este obviamente ocupaba el pathfile osea el archivo doc por lo tanto una vez enviado habia que agregar una linea liberandolo quedaria asi
Código: C#
  1.  
  2.  
  3. client.Send(msg);
  4. MessageBox.Show("Se ha enviado exitosamente ");
  5. return true;
  6. Data.Dispose(); //<----- linea agregada que soluciona el problema
  7.  
  8.  

12
C# / Re: copiar un archivo y luego volver a usarlo
« en: Viernes 4 de Marzo de 2011, 07:12 »
disculpa por no responder antes esto es mas o menos lo que tengo necesito editar un documento word y luego en viarlo por mail

//copio el docuemnto original a uno temporal y lo abro
                object doNotSaveChanges = Word.WdSaveOptions.wdDoNotSaveChanges;
                object saveChanges = Word.WdSaveOptions.wdSaveChanges;
                System.IO.File.Copy("C:\documentos\prueba.docx", "c:\documentos\temp.doc", true);
                Word.Application wordApp = new Word.Application();
                Word.Document aDoc = null;
                object filename = "c:\documentos\temp.doc";

//edito el documento
                if (System.IO.File.Exists((string)filename))
                {
                    object readOnly = false;
                    object isVisible = false;
                    aDoc = wordApp.Documents.Open(ref filename, ref readOnly, ref isVisible);
                    aDoc.Activate();
                    this.FindAndReplace(wordApp, "<fecha>", dateTimePicker1.Text);
                    this.FindAndReplace(wordApp, "<nombre>", TB_Nombre_Cotizacion_Nueva.Text.Trim());
                    this.FindAndReplace(wordApp, "<tipo_evento>", CB_tipo_evento_Cotizacion_Nueva.Text.Trim());
                    this.FindAndReplace(wordApp, "<precio>", TB_Precio_Cotizacion_Nueva.Text.Trim());
                    aDoc.Save();
//cierro el documento
                    ((Word._Document)aDoc).Close();
                    System.Runtime.InteropServices.Marshal.ReleaseComObject(aDoc);

                }
                else
                {
                    MessageBox.Show("El archivo no existe.", "No Existe", MessageBoxButtons.OK, MessageBoxIcon.Information);

                }
//copio el temporal a uno final que sera el que se envia
                System.IO.File.Copy("C:\documentos\temp.doc", "c:\documentos\cotizacion " + TB_Nombre_Cotizacion_Nueva.Text + ".doc", true);
//envio el documento
                Enviar(TB_Enviar_Cotizacion_Nueva.Text);

//esta es metodo para enviar
public static bool Enviar(string a)
        {
           
            string PathFile = @"c:\documentos\"+TB_Nombre_Cotizacion_Nueva.Text +".doc";
           System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage();

            msg.To.Add(a);

            msg.From = new MailAddress("luisbazanmontana@gmail.com", "", System.Text.Encoding.UTF8);
            msg.SubjectEncoding = Encoding.UTF8;

            msg.Subject = "Cotizacion";

            msg.SubjectEncoding = System.Text.Encoding.UTF8;

            msg.Body = "Mensaje del correo";
           
            msg.BodyEncoding = System.Text.Encoding.UTF8;

            msg.IsBodyHtml = false;

            Attachment Data = new Attachment(PathFile);

            msg.Attachments.Add(Data);

            SmtpClient client = new SmtpClient();

            client.UseDefaultCredentials = false;

            client.Credentials = new System.Net.NetworkCredential("micorreo@gmail.com", "mipass");
           
            client.Port = 587;
           
            client.Host = "smtp.gmail.com";

            client.EnableSsl = true;
           

            try
            {
               
                client.Send(msg);
                MessageBox.Show("Se ha enviado exitosamente ");
                return true;
            }
            catch (System.Net.Mail.SmtpException ex)
            {
                MessageBox.Show("No se mando"+ex, "No Existe", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return false;
            }
        }

el error lo tira cuando intento enviar por segunda vez el archivo, la primera vez que lo envio no da problemas pero si lo intento enviar una segunda vez se cae la aplicacion

gracias por responder

13
C# / copiar un archivo y luego volver a usarlo
« en: Jueves 3 de Marzo de 2011, 05:03 »
necesito copiar un archivo y luego volver a ocuparlo , utilizo el siguiente codigo
System.IO.File.Copy("C:\documentos\temp.doc", "c:\documentos\cotizacion " + TB_Nombre_Cotizacion_Nueva.Text + ".doc", true);
pero al tratar de volver a ocupar el archivo creado osea el "c:\documentos\cotizacion " + TB_Nombre_Cotizacion_Nueva.Text + ".doc"
me sale un error que el archivo esta en uso por otro proceso es como que la aplicacion lo deja lockeado
ojala puedan ayudarme
gracias

14
C# / Re: cerrar form hijo sin cerrar form padre
« en: Sábado 26 de Febrero de 2011, 19:16 »
jaujuajua intente tantas cosas, no se como no se me ocurrio eso, la ley de murphy siempre me acompaña, era la respuesta mas simple
solucionado

muchas gracias

15
C# / cerrar form hijo sin cerrar form padre
« en: Viernes 25 de Febrero de 2011, 07:04 »
hola
tengo un form padre que abre dentro de si mismo un form hijo pero al momento de cerrar el form hijo tambien me cierra el form padre
ojala puedan ayudarme he probado un sinfin de codigo y no lo he logrado realizar

muchas gracias

16
C# / Re: modificar propiedades entre forms
« en: Jueves 4 de Noviembre de 2010, 00:12 »
muchas gracias por responder, lo habia solucionado mandando el form1 como referencia pero creo que es mejor como dices tu mandar como referencia solo el objeto

muchas gracias

17
C# / modificar propiedades entre forms
« en: Martes 2 de Noviembre de 2010, 21:01 »
hola tengo un problemon

tengo 2 forms llamemosle form1 y form2
al hacer click en un boton del form1 me aparece el form 2 y al hacer click en un boton del form2 quiero cambiar la propiedad enabled de un toolstripmenuitem del form1 pero me sale un error "Se requiere una referencia de objeto para el campo, método o propiedad no estáticos "
lo hago asi form1.ingresoToolStripMenuItem.enabled=true;
tambien probe esto

form1 frm1= new form1();
frm1.ingresoToolStripMenuItem.enabled=true;
no me tiraba error pero no hacia nada

ojala puedan ayudarme

saludos y gracias de antemano

kancerman

Páginas: [1]