-
C# in VB
Habe mich daran versucht den Code ins VB.net zu ändern, nur ohne Erfolg! Kann mir hier jemand helfen?
Code:
if (!inUpdateMode)
{
if (inEditMode && !grdOrders.CurrentCell.Equals(editCell))
{
inUpdateMode = true;
grdOrders.Visible = false;
DataGridCell currentCell = grdOrders.CurrentCell;
grdOrders[editCell.RowNumber, editCell.ColumnNumber] = txtEdit.Text;
grdOrders.CurrentCell = currentCell;
grdOrders.Visible = true;
inUpdateMode = false;
txtEdit.Visible = false;
inEditMode = false;
}
editCell = grdOrders.CurrentCell;
txtEdit.Text = (string)grdOrders[editCell.RowNumber, editCell.ColumnNumber];
Rectangle cellPos = grdOrders.GetCellBounds(editCell.RowNumber, editCell.ColumnNumber);
txtEdit.Left = cellPos.Left - 1;
txtEdit.Top = cellPos.Top + grdOrders.Top - 1;
txtEdit.Width = cellPos.Width + 2;
txtEdit.Height = cellPos.Height + 2;
txtEdit.Visible = true;
inEditMode = true;
}
-
Zitat:
Zitat von Luigihausen
Code:
if (!inUpdateMode)
{
....
}
If Not inUpdateMode Then
....
End If
Zitat:
Zitat von Luigihausen
Code:
if (inEditMode && !grdOrders.CurrentCell.Equals(editCell))
{
.....
}
If inEditMode And Not grdOrders.CurrentCell.Equals(editCell) Then
.....
End If
Der Rest scheint mir vom .Net-Framework zu sein und sollte eigentlich für alle Sprachen gleich sein.
Wenn Du noch mehr Hilfe brauchst, wäre etwas mehr Code, evtl. auch die Quelle noch hilfreich.
-
Mir machen die vier Zeilen Problemem, die if-Abfragen habe ich schon verstanden. Das hätte ich aber auch besser mal gepostet!
Code:
DataGridCell currentCell = grdOrders.CurrentCell;
grdOrders[editCell.RowNumber, editCell.ColumnNumber] = txtEdit.Text;
txtEdit.Text = (string)grdOrders[editCell.RowNumber, editCell.ColumnNumber];
Rectangle cellPos = grdOrders.GetCellBounds(editCell.RowNumber, editCell.ColumnNumber);
Das ganze soll wie Du wahrscheinlich erkennen kannst ein Möglichkeit sein im Datagrid Änderungen durchzuführen!
-
Code:
DataGridCell currentCell = grdOrders.CurrentCell;
Dim currentCell As DataGridCell
Set currentCell = grdOrders.CurrentCell
Code:
grdOrders[editCell.RowNumber, editCell.ColumnNumber] = txtEdit.Text;
grdOrders(editCell.RowNumber, editCell.ColumnNumber) = txtEdit.Text
Code:
txtEdit.Text = (string)grdOrders[editCell.RowNumber, editCell.ColumnNumber];
txtEdit.Text = (String)grdOrders(editCell.RowNumber, editCell.ColumnNumber)
(string) ist eine explizite Konvertierung in den Typ string, ich weiss nicht ob das in VB.NET gleich ist wie in C#
Code:
Rectangle cellPos = grdOrders.GetCellBounds(editCell.RowNumber, editCell.ColumnNumber);
Dim cellPos As Rectangle
Set cellPos = grdOrders.GetCellBounds(editCell.RowNumber, editCell.ColumnNumber)
So ich hoffe das hilft etwas weiter, sonst wären die Fehlermeldungen noch hilfreich.
-
@djdd vielen Dank!
hier jetzt mal der ganze Code für Änderungen im Datagrid:
Code:
Dim inUpdateMode As Boolean = False
Dim inEditMode As Boolean = False
Dim currentCell As DataGridCell
Dim editcell As DataGridCell
Dim cellPos As Rectangle
Code:
Private Sub DataGrid_CurrentCellChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DataGrid_verbrauch.CurrentCellChanged
If Not inUpdateMode Then
If inEditMode And Not DataGrid.CurrentCell.Equals(editcell) Then
inUpdateMode = True
DataGrid.Visible = False
currentCell = DataGrid.CurrentCell
DataGrid.Item(editcell.RowNumber, editcell.ColumnNumber) = txtedit.Text
DataGrid.CurrentCell = currentCell
DataGrid.Visible = True
inUpdateMode = False
txtedit.Visible = False
inEditMode = False
End If
editcell = DataGrid.CurrentCell
txtedit.Text = CStr(DataGrid(editcell.RowNumber, editcell.ColumnNumber))
cellPos = DataGrid.GetCellBounds(editcell.RowNumber, editcell.ColumnNumber)
txtedit.Left = cellPos.Left - 1
txtedit.Top = cellPos.Top + DataGrid.Top - 1
txtedit.Width = cellPos.Width + 2
txtedit.Height = cellPos.Height + 2
txtedit.Visible = True
inEditMode = True
End If
End Sub
Wie kann an abfragen wenn im Grid gescrollt wird? Bei dem Code von oben Scrollt die Textbox (txtedit) leider immer mit!
-
Freut mich wenn ich Dir helfen konnte.
Jetzt kann ich es ja sagen: Mit VB.NET hab ich noch gar nie programmiert und mit C# bis jetzt nur ein bisschen rumgespielt, eigentlich komme ich aus der VBA-Programmierung.
Ich habe aber letzten Samstag die Ausbildung zum 'Microsoft Certified Application Developer MCAD C#.NET' angefangen und werde mir auch nächstens einmal das Compact Framework vornehmen. Dann nehm ich mir mal das Problem der Scrollenden textbox vor.