Código fuente de ObjectID
Establezca el ancho al definir la cuadrícula de datos.
ltasp: BoundColumn... gt ltHeaderStyle Width="150px " > lt/header style gt;
Cómo hacer clic en una fila en DataGrid en winform para mostrar los datos en TEXTBOX en tiempo real?
En el evento clave de la cuadrícula de datos
cuadro de texto 1. texto = mi cuadrícula de datos(mi cuadrícula de datos. celda actual. número de fila, 0)
cuadro de texto 2 . texto = mi cuadrícula de datos (mi cuadrícula de datos. celda actual. número de fila, 1)
.....
Y así sucesivamente
Espacio de nombres DataGridDoubleClick p>
{
Usar el sistema;
Usar el sistema. Dibujo;
Usa el sistema. Colección;
Usa el sistema. Modelo de componentes;
Utilizar el sistema. Windows Forms
Usa el sistema. Datos;
Clase pública Form1: System. window.form.form
{
Sistema privado. windows .forms .datagrid datagrid 1;
Conjunto de datos privado myDataSet
DateTime gridMouseDownTime
Sistema privado. windows .formularios etiqueta etiqueta 1;
Sistema privado. ComponentModel.Container componente = null
Formulario público 1()
{
inicializar componente();
gridMouseDownTime = DateTime. Ahora;
SetUp();
}
Configuración de anulación privada()
{
// Cree un conjunto de datos que contenga dos tablas y una relación 1 y.
crear conjunto de datos();
//Enlace de datos
dataGrid1SetDataBinding(myDataSet, "Clientes");
//Agregar estilo
AddCustomDataTableStyle();
}
Private void MakeDataSet()
{
//Crear datos colocar.
myDataSet = nuevo conjunto de datos ("mi DataSet");
//Crea 2 tablas de datos.
DataTable tCust = New DataTable("Cliente");
// Crea dos columnas y agrégalas a la primera tabla.
Columna de datos cCustID = nueva Columna de datos(" ID de cliente ");
Columna de datos cCustName = nueva Columna de datos(" Nombre de cliente "); ciudad cliente");
tCust. columnas .Add(cCustID);
tCust. columnas .Add(cCustName);
tCust. columnas . Add(c current);
//Agrega la tabla al conjunto de datos.
Mi conjunto de datos. tablas . Add(tCust);
/*Calcular tablas. Para cada cliente, cree una variable DataRow */
DataRow nueva fila 1;
//Agregar registros a CustomerTable.
for(int I = 1;i lt4;i)
{
newRow1 = tCust. NewRow();
nueva fila 1[" custID "]=(100 * I). ToString();
tCust. filas.Add(nueva fila 1);
}
TCust. Rows[0]["custName"] = "El maravilloso mundo de Meng Xianhui";
tCust. filas[1][" custName "] = " net _ lover ";
tCust. Line[2]["custName"] = "Component!=null)
{
Component.dispose();
}
}
Base.Dispose(dispose);
}
#Región Código generado por el Diseñador de formularios de Windows
Private void InitializeComponent( )
{
this.dataGrid1 = nuevo sistema. formularios de windows. ;
((sistema. modelo de componente. Admito inicializar)(este . datagrid 1)).
//
// dataGrid1
//
this.dataGrid1.Dibujo.SystemColors.Info
This.dataGrid1 . CaptionForeColor = Dibujo del sistema. Colores del sistema. Texto de la ventana;
This.dataGrid1. = false
This.dataMember =
this.dataGrid1.
HeaderForeColor = Sistema. dibujo . colores del sistema . texto de control;
this.dataGrid1. ubicación = nuevo sistema. dibujo.punto(11,9);
this.dataGrid1. nombre = " datagrid 1 ";
this.dataGrid1. tamaño = nuevo sistema. Dibujo.tamaño(368,144);
this.dataGrid1. TabIndex = 0;
this.dataGrid1. Nuevo sistema. windows .forms .controlador de eventos del mouse(this . datagrid 1 _ MouseDown);
//
// label1
//
esta.etiqueta1. ubicación = nuevo sistema. Punto de trama(4,166);
this.label1. nombre = " etiqueta 1 ";
this.label1. tamaño = nuevo sistema. dibujo. tamaño(383, 23);
this.label1. TabIndex = 1;
this.label1. TextAlign = Sistema. dibujo. alineación del contenido. centro medio;
this.label1. Haga clic en =Nuevo sistema. EventHandler(this.form 1_Click);
//
// Form1
//
Esto. AutoScaleBaseSize = nuevo sistema. dibujo.size(5,13);
Esto. ClientSize = nuevo sistema. dibujo.size(387,201);
Esto. AddRange(nuevo sistema. Windows.Forms.Control[] {
this.label1,
this.datagrid1});
this. nombre = " formulario 1 ";
Este. Text = "Ejemplo de evento de doble clic del mouse";
((System.modelo de componente. Admito inicializar)(this.datagrid 1)). end init();
Esto. ResumeLayout(false);
}
#Área final
[Subproceso estático]
Tubería principal vacía estática()
{
Aplicar. run(new form 1());
}
TextBoxDoubleClickHandler privado void(remitente del objeto, EventArgs e)
{
MessageBox . Show("Se produjo un evento de doble clic. Haga doble clic con el mouse en el valor: " ((cuadro de texto) remitente). text . tostring()); void TextBoxMouseDownHandler(objeto enviado cuadrado, MouseEventArgs e)
{
if (DateTime. ahora ltgridMouseDownTime.
agregue milisegundos (información del sistema.DoubleClickTime))
{
MessageBox. Show("Se produjo un evento de doble clic. Haga doble clic con el mouse para valorar: " ((cuadro de texto) remitente). text . tostring());
}
Label1. Text = "TextBox mouse presionado.";
}
cuadrícula de datos vacía privada 1 _ MouseDown(remitente del objeto, sistema. Windows.Forms.MouseEventArgs e)
{
gridMouseDownTime = FechaHora. Ahora;
label 1. text = "Datagrid 1 clic del mouse.";
}
Número privado Form1_Click(Remitente del objeto, sistema. EventArgs e )
{
etiqueta1. Text =
}
etiqueta vacía privada1_Click(Remitente del objeto, sistema. EventArgs e)
{
etiqueta1. Texto =
}
}
este. mi cuadrícula de datos. currentcellchanged = nuevo
sistema. EventHandler(this. my datagrid _ CurrentCellChanged);
/////////////////////////
privado anular mi cuadrícula de datos _ CurrentCellChanged(Remitente del objeto,
System.EventArgs e)
{
TextBox1. Texto = "Col es " myDataGrid. Celda actual. Número de columna
", la fila es " myDataGrid. Número de fila de celda actual
", el valor es " myDataGrid[myDataGrid. celda actual];
}
Reemplace dsCustomers1 y clientes con los suyos.
cuadrícula de datos vacía privada 1_Click(Remitente del objeto, sistema. EventArgs e)
{
Cuadro de texto 1. contexto vinculante [this . dscustomers 1, "Clientes"]. posición=dataGrid1. contexto vinculante [este . dsclientes 1. cliente】. Posición;
}
En el evento de cambio de cursor del datagrid.
cuadro de texto 1 . texto = mi cuadrícula de datos (mi cuadrícula de datos . celda actual . número de fila, 0)
cuadro de texto 2 . 1)
.....
Espera
El control de cuadro de texto vincula el conjunto de datos.
Cuadro de texto 1.
DataBindings.Add(new bind("Text",ds,"customers.custname"));
Establezca datagridTableStyle (MappingName es el nombre de la tabla) en la propiedad datagridTableStyle y luego agregue personalizaciones en el orden necesita DataGridTextBoxColumn (el nombre de asignación es el nombre del campo). Cada DataGridtextBoxColumn puede tener su ancho establecido de forma independiente.
En la cuadrícula de datos de winforms
1. Cómo lograr cambios de color alternos de filas
2. Cómo agregar un enlace (por ejemplo, si coloca un formulario de pedido en la cuadrícula de datos y hace clic en cualquier columna de la fila, aparecerá un nuevo formulario para colocar la información del usuario del pedido).
3. Cómo eliminar información en el grid de datos en lotes (usando casillas de verificación
DataGridTableStyle ts 1 = new DataGridTableStyle();
dataGrid1DataSource = aTable
//From Specify la tabla en el conjunto de datos (paso obligatorio)
ts1. MappingName = " A
//Establecer otras propiedades (paso opcional)
ts1. AlternatingBackColor = Color azul claro;
//ts1. AllowSorting = false
ts1
estilos de tabla dataGrid .Add(ts 1);
GridColumnStyles[0]. Ancho = 200;
ts1.DataGrid.Refresh();
Te daré la primera pregunta:
Primero, ordenemos una tabla de datos y una fila de datos
Idtb_temp privado como nuevo. as DataRow
Private sub GetDataTable()
idtb_temp.columns.add(" pr dotr_subodr_code") ' 'Define el nombre de la columna de la tabla de datos
idtb_temp. . TableName = "SearchTable "
Mostrar ldcl_header como ventana. DataGridTextBoxColumn
Ocultar ldgts_styles como nueva ventana Forms.DataGridTableStyle
ldgts_styles = Sistema. Color.Yellow
'' El color de primer plano de la fila seleccionada
ldgts_styles selección color de fondo = sistema marrón '' El color de fondo del dibujo seleccionado. líneas.
ForeColor = system.color.
El color de la palabra que se mostrará en la cuadrícula de datos.
ldgts_styles. AlternatingBackColor = Sistema.
plot.color.cyan
''El color que se muestra para las filas impares en la cuadrícula de datos.
ldgts_styles. Color de fondo = sistema. plot.color.cyan
''El color que se muestra para las filas pares en la cuadrícula de datos.
ldgts_styles. AllowSorting = False
Algunas hojas de estilo definen cuadrículas de datos que no permiten la clasificación automática. ..
ldgts_styles. MappingName = "SearchTable "
ldcl_header =Nueva ventana. Form.DataGridTextBoxColumn
""crea una instancia de datagridtextboxcolumn.
ldcl_header. mapeo name = " pr dodr _ subordr _ code "
"" se refiere al nombre de la columna definida previamente.
Ldcl_header. HeaderText = "Primera columna"
""Texto del encabezado mostrado en la cuadrícula de datos
Algunas columnas de ldcl_header. ReadOnly = True ' ' ' está configurado como de solo lectura.
ldcl_header. Estilo de borde de cuadro de texto = estilo de borde. Se corrigió 3D
ldcl_header. TextBox.ForeColor = Sistema. dibujo.color.rojo
ldgts_styles. GridColumnStyles.Add(ldcl_header)
Para I, entero = 0 a 7
idrw_row = idtb_temp. nueva fila
idrw _ fila item(" pr dotr _ subodr _ code ") = "primero"; i amp "ok"
idtb_temp. Rows.Add(idrw_row)
Luego
idtb_temp. DefaultView.AllowNew = False
i. DataGrid1TableStyles.Add(ldgts_styles)
i. Fuente de datos DataGrid1 = idtb_temp
Conector final
Tercera pregunta: Ver mi blog.
Usando Checkbox, ComboBxo y datetimepicker en la grilla de datos
=new OleDbCommand(update_OleDb, my conn);
update_com. EjecutarNonQuery();
type_dg. EditItemIndex =-1;
myconn. close();
vincular datos();
}
Cancelación de anulación pública (remitente del objeto, DataGridCommandEventArgs e)
{
type_dg.
EditItemIndex =-1;
vincular datos();
}
Eliminar:
eliminación de vacío público (remitente del objeto, DataGridCommandEventArgs e )
{
cadena no=type_dg. Artículo[e.Item.ItemIndex]. celda[0]. Text;
conexión oledb my conn = nueva conexión oledb(Application[" str conn "].ToString());
myconn. open();
cadena eliminarOleDb = " eliminar del blog _ tipo donde id = " no;
comando oledb eliminar com = nuevo comando oledb(deleteOleDb, mi conexión); p>
comando oledb eliminar com = nuevo comando oledb(eliminarOleDb, mi conexión);
p>
eliminarcom. ExecuteNonQuery();
myconn. close();
bind data();
}
¿Cómo cambiar los títulos de las columnas y establecer el contenido de las columnas en el dataGrid de Winform?
Tabla:
id nombre strdate fecha de finalización
1 a 2004/2/1
Solicitud de visualización
Nombre fecha de inicio y fecha de finalización vencida (sí/no)
A 2004/2/1 2005/2/1 tiene 365 días de retraso.
Gracias
Privado void Form1_Load(Remitente del objeto, sistema. EventArgs e)
{
SqlConnection CS = new SqlConnection( " servidor = Meng Xianhui; base de datos = SqlPUB2 userId = sapassword = ");
adaptador sqldata mi comando = nuevo adaptador sqldata(" Seleccionar último modificado, objectId de BaseObject ", CS);
Conjunto de datos mi conjunto de datos = nuevo conjunto de datos();
Mi comando. Fill(myDataSet, "objeto base");
this.dataGrid1. Fuente de datos = miConjunto de datos. Table[0];
//Establecer las columnas de la cuadrícula de datos
DataGridTextBoxColumn c 1 = new DataGridTextBoxColumn();
DataGridTextBoxColumn C2 = new DataGridTextBoxColumn( ) ;
c1. MappingName = " última modificación
c2. MappingName = " objectId
C1. HeaderText= "Hola, Hawái";
C2. HeaderText="etiqueta
C1.
Formato = " yyyy MM dd Día
c1. Ancho = 200;
DataGridTableStyle dts = new DataGridTableStyle();
dts. GridColumnStyles . Add(c 1 );
dts.GridColumnStyles.Add(C2);
dts.MappingName = " BaseObject
this.dataGrid1. estilos de tabla Add(dts);
}
Tema: Aplicación de la lista de casillas de verificación de cuadrícula de datos
Puede agregar columnas de plantilla y luego editar la columna de plantilla. agregue CheckBox y CheckBoxList, luego nombre estos dos controles, agregue el evento CheckBox1_CheckedChanged en el código, establezca la devolución de datos automática de la casilla de verificación en verdadero y luego.
Escribe la función que deseas implementar para el evento CheckBox1_CheckedChanged.
El siguiente es un ejemplo simple de cómo eliminar los datos de la fila actual de DataGrid: (los datos anteriores se han vinculado a dataGrid1)
string strSQL = " BORRAR DE la tabla 1 WHERE Id = @ Id ";
texto de cadena = cuadrícula de datos 1[cuadrícula de datos 1. CeldaActual.NúmeroDeFila, 0]. ToString();
Conjunto de datos de prueba 1. Tabla 1. Filas[dataGrid1. número de fila de celda actual]. eliminar();
Conjunto de datos de prueba 1. aceptar cambios();
sqlDataAdapter2. eliminar comando.Parámetros["@Id"]. valor = texto;
sqlDataAdapter2. eliminar comando .open();
sqlDataAdapter2. eliminar comando .ExecuteNonQuery();
sqlDataAdapter2. comando de eliminación. close();
Título: ¿Cómo generar anchos de columna adaptables en DataGridView?
Ancho de columna adaptable:
Función de ancho de columna de la cuadrícula de fecha de control
columnas públicas de subtamaño para contenido (ByVal dataGrid As dataGrid, ByVal nRowsToScan As Integer)
Atenuar el gráfico a gráfico=cuadrícula de datos. CreateGraphics()
estilo de tabla tenue Como estilo de tabla de cuadrícula de datos = Nuevo estilo de tabla de cuadrícula de datos
Pruebe
tabla de datos tenue Como tabla de datos = CType(dataGrid. Fuente de datos, datos table)
Si -1 = nRowsToScan, entonces
nRowsToScan = dataTable. Número de filas.
Count
Otro
nRowsToScan = System. Math.Min(nRowsToScan, dataTable.Number of rows)
Finaliza si...
DataGrid. TableStyles.Clear()
Estilo de tabla. MappingName = tabla de datos. Nombre de la tabla
Atenuar columnStyle como DataGridTextBoxColumn
Atenuar iWidth como entero
Para iCurrCol como entero = 0 a dataTable. Número de columnas: 1
columna de datos tenue como columna de datos = tabla de datos. columna(iCurrCol)
columnStyle = nueva DataGridTextBoxColumn
columnStyle. Cuadro de texto. enable=True
columnStyle. Texto de encabezado = columna de datos. NombreDeColumna
EstilodeColumna. MappingName = columna de datos. ColumnName
iWidth = CInt(Graphics.MeasureString(columnStyle.HeaderText, DataGrid.Font).Width)
Atenuar fila de datos como fila de datos
Para iRow como Entero = 0 a nRowsToScan - 1
dataRow = tabla de datos. Row(iRow)
Si dataRow(dataColumn.column name) lt;gtEso no es nada
Dim iColWidth As Integer = CInt(Graph.MeasureString(dataRow.ItemArray(iCurrCol) .ToString( ), dataGrid. fuente). ancho)
Dim iColHight As Integer = CInt(graphic. MeasureString(dataRow. ItemArray(iCurrCol). ToString(), dataGrid. font). altura) p>
iWidth = CInt(System.Math.Max(iWidth, iColWidth))
Terminará si...
Entonces
columnStyle. Ancho = iAncho 10
Estilo de tabla. GridColumnStyles . Agregar (estilo de columna)
Luego
la cuadrícula de datos. Estilo de tabla. Agregar (estilo de tabla)
Capturar ex como excepción
MessageBox. Visualización (p. ej. mensaje)
Último
Gráfico. Dispose()
Finalizar intento
Finalizar conector
Tema: ¿Existe una manera fácil de ocultar columnas en Datagrid en WinForm?
También utilizo data grid. estilo de tabla [tabla]. Estilos de columna de cuadrícula [0]. Ancho = 0; no debería haber otra forma.
Pregunta principal: ¿Cómo capturar el evento de doble clic de DataGrid en WinForm?
Espacio de nombres DataGridDoubleClick
{
Usar sistema;
Usar sistema.
Dibujo;
Usa el sistema. Colección;
Usa el sistema. Modelo de componentes;
Utilizar el sistema. Windows Forms
Usa el sistema. Datos;
Clase pública Form1: System. window.form.form
{
Sistema privado. windows .forms .datagrid datagrid 1;
Conjunto de datos privado myDataSet
DateTime gridMouseDownTime
Sistema privado. windows .formularios etiqueta etiqueta 1;
Sistema privado. ComponentModel.Container componente = null
Formulario público 1()
{
inicializar componente();
gridMouseDownTime = DateTime. Ahora;
SetUp();
}
Configuración de anulación privada()
{
// Cree un conjunto de datos que contenga dos tablas y una relación 1 y.
crear conjunto de datos();
//Enlace de datos
dataGrid1SetDataBinding(myDataSet, "Clientes");
//Agregar estilo
AddCustomDataTableStyle();
}
Private void MakeDataSet()
{
//Crear datos colocar.
myDataSet = nuevo conjunto de datos ("mi DataSet");
//Crea 2 tablas de datos.
DataTable tCust = New DataTable("Cliente");
// Crea dos columnas y agrégalas a la primera tabla.
Columna de datos cCustID = nueva Columna de datos(" ID de cliente ");
Columna de datos cCustName = nueva Columna de datos(" Nombre de cliente "); ciudad cliente");
tCust. columnas .Add(cCustID);
tCust. columnas .Add(cCustName);
tCust. columnas . Add(c current);
//Agrega la tabla al conjunto de datos.
Mi conjunto de datos. tablas . Add(tCust);
/*Calcular tablas. Para cada cliente, cree una variable DataRow */
DataRow nueva fila 1;
//Agregar registros a CustomerTable.
for(int I = 1;i lt4;i)
{
newRow1 = tCust. NewRow();
nueva fila 1[" custID "]=(100 * I). ToString();
tCust. filas.Add(nueva fila 1);
}
TCust.
Rows[0]["custName"] = "El maravilloso mundo de Meng Xianhui";
tCust. filas[1][" custName "] = " net _ lover ";
tCust. Line[2][" custName "] = "/";
TCust. filas[0][" ciudad cust "]= " Beijing ";
tcust filas[1][" ciudad cust "]= " Shanghai ";
TCust. Rows[2]["custCity"] = "Henan";
}
private void AddCustomDataTableStyle()
{
DataGridTableStyle ts 1 = nuevo DataGridTableStyle();
ts1. MappingName = "Cliente";
//Establecer propiedades
ts1. AlternatingBackColor = Color. Gris claro;
//Agregue un estilo de columna de cuadro de texto para que podamos capturar eventos del mouse.
DataGridTextBoxColumn TextCol = new DataGridTextBoxColumn();
Columna de texto. MappingName = " custID
Columna de texto. HeaderText = "Número de serie";
Columna de texto. Ancho = 100;
//Agregar controlador de eventos
p>TextBox. MouseDown = nuevo MouseEventHandler(TextBox mousedownhandler);
TextBox doble clic = nuevo EventHandler(Controlador de doble clic de TextBox);
GridColumnStyles.Ad