C# in VB C# in VB
Ergebnis 1 bis 6 von 6
  1. Luigihausen Gast
    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;
          }
    0
     

  2. 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.
    0
     

  3. Luigihausen Gast
    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!
    0
     

  4. 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.
    0
     

  5. Luigihausen Gast
    @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!
    0
     

  6. 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.
    0