Professional Documents
Culture Documents
C# and The Unattached DataGridView, by M.C. Enrique Ruiz Díaz
C# and The Unattached DataGridView, by M.C. Enrique Ruiz Díaz
C# and The Unattached DataGridView, by M.C. Enrique Ruiz Díaz
Con ttulo y cdula profesional 5632071 en la Maestra en Ciencias de la Computacin. Egresado del Instituto Tecnolgico de Orizaba, Ver. (Mxico).
Pgina 1 de 19 Visit: https://sites.google.com/site/mcenriqueruizdiaz/ Also: http://sites.google.com/site/enriqueruizdiaz/
Acerca de mi.
Titulado en la Maestra en Ciencias en Ciencias de la Computacin, Cdula profesional 5632071. Egresado del Instituto Tecnolgico de Orizaba, Ver., Mxico. Antes, me Titul en la Licenciatura en Informtica, Cdula profesional 4046033. Egresado del Instituto Tecnolgico de Tuxtepec, Oax., Mxico, distinguindome adems, por ser el mejor promedio de mi generacin con 98%. Bien, regresando al tema de mi Ttulo de Maestra en Ciencias de la Computacin, para subrayar que sta, requiri el desarrollo de una TESIS. Otro aspecto muy importante, fue que durante el desarrollo de mi Maestra escrib un ARTICULO, mismo que fue aceptado para publicacin y con mi ponencia en el evento 'Primer Encuentro de Estudiantes en Ciencia de la Computacin - E2C2' ISBN-10:970-36-0404-8 e ISBN-13:978-970-36-0404-3 celebrado en el Instituto Politcnico Nacional, Mxico, D.F. 2007.
Inside the great field of the Programming, I own to offer my knowledge of the Structured Programming Paradigm. This, principally by means of the Language C. Also, I own to offer my knowledge of the Object-Oriented Paradigm. This, by means of The Languages Java and Visual C#. Majorly.
NDICE
Acerca de mi. ............................................................................................................................................................. 2 NDICE ........................................................................................................................................................................ 5 1. Objetivos logrados. ................................................................................................................................................ 6 1.1. Para el usuario final. ......................................................................................................................................... 6 1.2 Para el programador. ........................................................................................................................................ 6 1.3. Comentario. ..................................................................................................................................................... 6 2. Por qu el DataGridView como no atado, es decir, independiente, y no el atado?. ............................................ 7 3. Especificando al DataGridView como no atado, al arrastrarlo y soltarlo en la aplicacin. ..................................... 8 4. Cmo aparece la aplicacin en la parte de diseo visual. ...................................................................................... 9 5. Desglose de elementos de arrastrar y soltar en el formulario de la aplicacin. ............................................... 10 6. Cmo aparece la aplicacin ejecutandose ante el usuario final........................................................................... 12 7. Cmo debe proceder el usuario final para seleccionar un registro (rengln) o varios de estos a la vez. ............. 13 8. Cdigo fuente del Programa. ............................................................................................................................... 14
Pgina 5 de 19 Visit: https://sites.google.com/site/mcenriqueruizdiaz/ Also: http://sites.google.com/site/enriqueruizdiaz/
1. Objetivos logrados.
1.1. Para el usuario final.
1) 2) 3) 4) 5) 6) 7) 8) Desplegar el instrumento DataGridView como un presentador de registros (renglones) de informacin. Permitirse el modificar datos. Inhabilitar la posibilidad de modificar datos. Indicar que slo un registro puede ser seleccionado a la vez. Indicar que mltiples registros pueden ser seleccionados. Eliminar registros previamente seleccionados. Habilitar el poder agregar registros. Desplegar el contenido de registros seleccionados.
1.3. Comentario.
Es el programador el que decide que facultades se otorgan al usuario final, y que facultades se reserva l. En el programa de ejemplo aqu mostrado, el usuario final recibi todas las facultades ya referidas. Pgina 6 de 19 Visit: https://sites.google.com/site/mcenriqueruizdiaz/ Also: http://sites.google.com/site/enriqueruizdiaz/
La respuesta ms obvia a esta pregunta es que el presente documento se enfoc en el DataGridView no atado, y no en el atado como objeto de estudio. Entonces se hace evidente que el DataGridView atado ser objeto de otro estudio aparte. Bien, ahora debo decir que el DataGridView no atado resulta atrayente porque atorga al Programador avispado (es decir, hbil para codificar) el control y los beneficios de esta poderosa herramienta enteramente a su responsabilidad. Por supuesto que conocer al DataGridView atado (ahora no estudiado) tambin es importante, pero ese DataGridView implica para el programador otros compromisos (computacionalmente hablando) de los cuales debe estar muy bien documentado para que no le resulte contraproducente. En consecuencia, como ya dije, si se sabe programamar bien, el presente estudio resulta ser un comienzo conveniente.
Observe que al arrastrar y soltar el DataGridView en la aplicacn, no modificamos los datos de configuracin que ya inicialmente nos provee. Observe que el valor para Choose Data Source permanece como none. Esto ltimo significa que el DataGridView no est atado a alguna fuente de datos.
Pgina 8 de 19 Visit: https://sites.google.com/site/mcenriqueruizdiaz/ Also: http://sites.google.com/site/enriqueruizdiaz/
Tipo de elemento
Button dataGridView Button Button Label Button Button Label Button Show_DataGridView dataGridView1
Nombre
La Aplicacin en ejecucin.
7. Cmo debe proceder el usuario final para seleccionar un registro (rengln) o varios de estos a la vez.
Observe que al comienzo de cada registro (rengln) existe un pequeo recuadro, que provisionalmente llamaremos celda para seleccionar. Bien, si slo se requiere seleccionar un registro, nicamente se requiere dar un clic en la celda para seleccionar correspondiente. Ahora, si se requiere seleccionar ms de un registro a la vez, entonces primero se oprime la tecla CONTROL y se conserva oprimida, con esto, ya se puede usar la referida celda para seleccionar con los registros deseados.
private void Show_DataGridView_Click(object sender, EventArgs e) { // Dos lineas siguientes: Para el DataGridView: Crear Columnas y nombres de sus columnas. int total_of_Columns = 5; string[] Columns_names = new string[] { "Product ID", "Product Name", "Product Price", "Product Category", "Product Description" }; Create_Columns_to_DataGridView(total_of_Columns, Columns_names); // ************************************************************************** // Asunto siguiente: Agregar las filas al DataGridView, con datos. string[] row = new string[] { "31", "Product 1", "1000", "Babies", "Paales" }; Add_newRow_to_DataGridView(row); row = new string[] { "32", "Product 2", "2000", "Electronics", "TV" }; Add_newRow_to_DataGridView(row); row = new string[] { "33", "Product 3", "3000", "Ladies", "clothes" }; Add_newRow_to_DataGridView(row); row = new string[] { "34", "Product 4", "4000", "Gentlemen", "clothes" }; Add_newRow_to_DataGridView(row); row = new string[] { "35", "Product 5", "5000", "Music", "CD" }; Add_newRow_to_DataGridView(row); row = new string[] { "36", "Product 6", "6000", "Movies", "DVD" }; Add_newRow_to_DataGridView(row);
private void Create_Columns_to_DataGridView(int cantidad, string[] Columns_names) { dataGridView1.ColumnCount = cantidad; for (int i = 0; i < cantidad; i++) { dataGridView1.Columns[i].Name = Columns_names[i]; } // El usuario no tiene permiso de agregar filas, con la siguiente // opcion en false. dataGridView1.AllowUserToAddRows = false; }
private void button_Only_a_selected_row_Click(object sender, EventArgs e) { dataGridView1.MultiSelect = false; label2.Text = "Present specification: Only a row."; button_Only_a_selected_row.Hide(); button1_Allow_multiple_selection_of_rows.Show(); } private void button1_Allow_multiple_selection_of_rows_Click(object sender, EventArgs e) { dataGridView1.MultiSelect = true; label2.Text = "Present specification: Multiple rows."; button1_Allow_multiple_selection_of_rows.Hide(); button_Only_a_selected_row.Show(); } private void button1_Allow_to_Modify_data_Click(object sender, EventArgs e) { dataGridView1.ReadOnly = false; label1.Text = "Present specification: yes, to Modify"; button1_Allow_to_Modify_data.Hide(); button_Do_not_Allow_to_modify_data.Show(); } private void button_Do_not_Allow_to_modify_data_Click(object sender, EventArgs e) { dataGridView1.ReadOnly = true; label1.Text = "Present specification: Not, to Modify"; button_Do_not_Allow_to_modify_data.Hide();
private void boton_Show_me_the_selected_row_Click(object sender, EventArgs e) { if (dataGridView1.SelectedRows.Count > 0) { string datos = ""; int Cantidad_celdas = dataGridView1.SelectedRows[0].Cells.Count; for (int i = 0; i < dataGridView1.SelectedRows.Count; i++) { for (int t = 0; t < Cantidad_celdas; t++) { try { datos = datos + dataGridView1.SelectedRows[i].Cells[t].Value.ToString() + ", "; } catch { //si el usuario deja una celda vaca, // el sistema lo considera 'null', y no // como string = " ". datos = datos + " "; } // fin del try...catch }// fin del 'ciclo for' ms interno. MessageBox.Show("Fila seleccionada: " + " datos: " + datos); datos = ""; } // fin del primer 'ciclo for'. El ms externo. } else { MessageBox.Show("Usuario: actualmente, no tiene fila alguna seleccionada.");