Red de conocimiento informático - Aprendizaje de programación - Código fuente de ObjectID

Código fuente de ObjectID

Respecto al problema de la cuadrícula de datos, cómo evitar que los usuarios cambien el ancho de las filas. (Es decir, el ancho de la línea es fijo y no se puede cambiar arrastrándolo)

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

{

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:

Aplicación del estilo de tabla de cuadrícula de datos...

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);

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)

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