c# - una - evento de pulsación de tecla en la vista de cuadrícula de datos?
evento keydown c# (2)
He probado esto y funciona al usar el evento de tecla abajo y multiplica el valor de someAmount
por someAmount
, cada vez que ingresa un nuevo número en la celda, realiza el cálculo automáticamente.
public Form1()
{
InitializeComponent();
MyDataGridViewInitializationMethod();
}
private void MyDataGridViewInitializationMethod()
{
dataGridView1.EditingControlShowing +=
new DataGridViewEditingControlShowingEventHandler(dataGridView1_EditingControlShowing);
}
private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
e.Control.KeyPress +=
new KeyPressEventHandler(Control_KeyPress);
}
private void Control_KeyPress(object sender, KeyPressEventArgs e)
{
if (char.IsNumber(e.KeyChar))
{
string cellValue = Char.ToString(e.KeyChar);
//Get the column and row position of the selected cell
int column = dataGridView1.CurrentCellAddress.X;
int row = dataGridView1.CurrentCellAddress.Y;
if (column == 1)
{
//Gets the value that existings in that cell
string test = dataGridView1[column, row].EditedFormattedValue.ToString();
//combines current key press to the contents of the cell
test = test + cellValue;
int intNumberBoxes = Convert.ToInt32(test);
//Some amount to mutiple the numberboxes by
int someAmount = 10;
dataGridView1[column + 1, row].Value = intNumberBoxes * someAmount;
}
}
}
}
Necesito escribir una función simple para que cuando la persona ingrese el número de casillas, el evento de pulsación de tecla se number of boxes*someamount
y el number of boxes*someamount
llegue a la columna de cantidad. He agregado datagridview usando el control de arrastrar y soltar
Creo que el código se escribirá aquí de acuerdo con mi investigación
private void dataGridView1_EditingControlShowing(object sender,
DataGridViewEditingControlShowingEventArgs e) {
}
Pero no sé cómo colocar el evento de Keyup y acceder al numberofboxes and Amount
casillas de las columnas numberofboxes and Amount
. Gracias
para vb.net
Validación decimal
Public Sub New()
InitializeComponent()
MyDataGridViewInitializationMethod()
End Sub
Private Sub MyDataGridViewInitializationMethod()
AddHandler dataGridView1.EditingControlShowing, AddressOf dataGridView1_EditingControlShowing
End Sub
Private Sub dataGridView1_EditingControlShowing(ByVal sender As Object, ByVal e As DataGridViewEditingControlShowingEventArgs)
AddHandler e.Control.KeyPress, AddressOf Control_KeyPress
End Sub
Dim dotOnce As Boolean
Private Sub Control_KeyPress(ByVal sender As Object, ByVal e As KeyPressEventArgs)
If e.KeyChar Like "['']" Then
e.Handled = True
Exit Sub
End If
If e.KeyChar = "." Then
If dotOnce Then
e.Handled = True
End If
dotOnce = True
Else
If (Not e.KeyChar Like "[0-9 . ]") Then
e.Handled = True
Exit Sub
End If
End If
End Sub