none
DatagridView-Dataset-Automatisches Einfügen, selektieren, löschen RRS feed

  • Frage


  • Hallo,

    folgendes Ziel:
    Ich scanne einen Code ein.
    Dieser wird in eine Liste übernommen.



    Bei Druck auf ArbeitsPos wird der Zähler um 1 heruntergezählt.
       FirstIn FirstOut

    Im Beispiel.
    Die letzte Zeile / die dritte Zeile markieren, Zähler um 1 herunterzählen.
             Wenn 0 Zeile löschen

    Problem.
    Automatisches selektieren DataGridView.
    Wie geht das?

    Danke für Tipps.

    Grüße Andreas

    VS2008, C#

     private void btnTakeOverScan_Click(object sender, EventArgs e)
        {
          DataTable dt = dataSetMaterialSettings.tblMaterial;
          DataRow dr = dt.NewRow();
          dr["Charge"] = txtInputHandheldscanner.Text; 
          dr["Count"] = 33;
          dt.Rows.Add(dr);
    
    
         // die letze Zeile muss selektiert sein.
        }
    
    
        private void btnPanelAtWorkingPos_Click(object sender, EventArgs e)
        {
          dGVMaterial.Rows[1].Selected = true;
         // wie bekomme ich den Counter heraus, max. Anzahl. 
         // über Dataset oder dataGridView?
    
    
          DataRow[] editRow = dataSetMaterialSettings.Tables["tblMaterial"].Select("Charge='2222'"); 
          if (editRow.Length == 1) 
          { 
            editRow[0].BeginEdit();
            editRow[0]["Count"] = 22; 
            editRow[0].EndEdit();
          }

       Nice to have.
       Geht so etwas?
       Aktuelle Eingabe selektiert Farbe gelb
       Aktuelle Ararbeitung selektiert Farbe grün
    Mittwoch, 8. September 2010 13:44

Antworten

  • Hallo Andreas,

    bzgl. Herunterzählen ist das doch ok, vielleicht noch so abändern.
          // Folgendes ist unsauber:
          // string count = drv["Count"].ToString();
          // Int32 newCount = Convert.ToInt32(count) - 1;



          // besser:
    int newCount = ((int)drv["Count"]) - 1;
          drv.BeginEdit();
          drv["Count"] = newCount;
          drv.EndEdit();

          > Tag <-> Text

    Also die Tag-Eigenschaft ist doch nur ein möglicher zusätzlicher Container, der bei einem Control eben Daten enthalten (speichern) kann. Aber das Binding ist hier bei Dir über die Text-Eigenschaft auszuführen und ja auch schon richtig umgesetzt. Die Tag-Eigenschaft brauchst Du nicht.
    Ansonsten müsstest Du noch mal die Frage präzise stellen, wozu Du die Belegung der Tag-Eigenschaft benötigst, aber wie gesagt, lass sie weg, die wäre in den meisten Fällen nur ein Notnagel.  


    ciao Frank
    • Als Antwort markiert Andreas Bauer2 Freitag, 10. September 2010 19:06
    Freitag, 10. September 2010 04:15
  • Hallo Andreas, :-)

    so nach vielen Kartons - wenig Intenet - und viel bei der Arbeit zu tun jetzt ein paar Dinge zu Deiner nächsten Frage, die ggf alle separat in neuen Fragen gestellt werden sollten.

    Ich nehme mal an, die Frage von Dir ist:

    - Wie kann ich es schaffen, dass die gelbe Zeile auch nach
      mehrmaligem Drücken der „TakeOver“ Taste immer zusammen
      mit der aktuellen angezeigt wird?
      Oder allgemeiner für die anderen: wie kann ich es schaffen, dass trotz
      Zufügung von beliebig vielen Zeilen im Grid immer sichtbar und gefärbt sind?

    Ich habe in Deinem Projekt folgendes eingefügt:

      private void btnTakeOverScan_Click(object sender, EventArgs e)
      {
       if (dGVMaterial.Rows.Count > 0) dGVMaterial.Rows[0].Frozen = false;
      
       // . . . Dein vorheriger Quellcode
    
       if (dGVMaterial.Rows.Count > 0) dGVMaterial.Rows[0].Frozen = true;
      } 
    

    vielleicht nicht die beste Möglichkeit, aber da Dir die Zeit drängt, vielleicht schon mal ein Rettungsanker :-)
    btw: Bin jetzt ein paar Stunden weg. 


    ciao Frank
    Sonntag, 10. Oktober 2010 12:16

Alle Antworten

  • Hallo,
    Anmerkung noch.
    Ich will das DataGridview nicht als Eingabe sondern 'nur' als Anzeige benutzen.
    Kein Bedienereingriff möglich.

    Wie setze ich die akt. Zeile?
    Wo filtere ich am besten?
    Wie macht man es richtig?

    Dataset?
    DataGridView?

    Danke für Tipps.

    Grüße Andreas


    private void btnTakeOverScan_Click(object sender, EventArgs e)
        {
         for (int i = 0; i < dGVMaterial.Rows.Count; i++)
         {
          dGVMaterial.Rows[i].Selected = false;
         }
    
          DataTable dt = dataSetMaterialSettings.tblMaterial;
          DataRow dr = dt.NewRow();
          dr["Charge"] = txtInputHandheldscanner.Text; 
          dr["Count"] = 33;
          dt.Rows.InsertAt(dr, 0);
    
         
          int nNewCount = dGVMaterial.Rows.Count;
          dGVMaterial.Rows[nNewCount-2].Selected = true;
        }
    
        private void btnPanelAtWorkingPos_Click(object sender, EventArgs e)
        {
          // dGVMaterial.Rows[1].Selected = true;
    
          DataRow[] editRow = dataSetMaterialSettings.Tables["tblMaterial"].Select("Charge='2222'");
          //DataRow[] editRow = dataSetMaterialSettings.Tables["tblMaterial"].Select(; 
          if (editRow.Length == 1) 
          { 
            editRow[0].BeginEdit();
            editRow[0]["Count"] = 22; 
            editRow[0].EndEdit();
          }
    
          foreach (DataRow row in dataSetMaterialSettings.Tables["tblMaterial"].Rows) 
            Console.WriteLine("{0,-10}{1}", row[0], row[1]); 
    
          dGVMaterial.FirstDisplayedScrollingRowIndex = dGVMaterial.CurrentRow.Index;
    
          // string chargeActive = dGVMaterial.CurrentRow["Charge"];
          // Int32 countActive = dGVMaterial.CurrentRow.Cells["Count"]; 
    	  // ### ich muss hier jetzt 1 zurückzählen, bei 0 Zeile löschen
    
        }
    

    Mittwoch, 8. September 2010 16:09
  • Hallo Andreas,

    ich vermute, Du möchtest zum einen die Zeilen-Position setzen und gleichzeitig diese markieren (selektieren).
    Hier ein Ansatz über den internen CurrencyManager:

     private void btnPanelAtWorkingPos_Click(object sender, EventArgs e)
     {
      for (int i = 0; i < dGVMaterial.Rows.Count; i++)
      {
       DataGridViewRow row = dGVMaterial.Rows[i];
       if (row.Cells[0].Value != null &&
        row.Cells[0].Value.Equals("2222"))
       {
        dGVMaterial.BindingContext[dGVMaterial.DataSource].Position = i;
        return;
       }
      }
     }

    ciao Frank
    Mittwoch, 8. September 2010 17:03
  • private void btnPanelAtWorkingPos_Click(object sender, EventArgs e)
    
    {
    
     for (int i = 0; i < dGVMaterial.Rows.Count; i++)
    
     {
    
      DataGridViewRow row = dGVMaterial.Rows[i];
    
      if (row.Cells[0].Value != null &&
    
      row.Cells[0].Value.Equals("2222"))
    
      {
    
      dGVMaterial.BindingContext[dGVMaterial.DataSource].Position = i;
    
      return;
    
      }
    
     }
    
     }
    
    

    Hallo Frank,

    jein!

    Das was ich als erstes einscanne liegt unten und wird weiterverarbeitet.

    D.h. Bearbeitungszeile selektieren. Danach muss ich den aktuellen Wert auslesen, um 1 zurückzählen. Da hänge ich noch. Ist dieser dann 0, Zeile löschen, obere Zeile markieren, abarbeiten etc.

    Was mir jetzt unklar ist.

    Wo zähle ich herunter, im Dataset? Im DataGridView?

    >row.Cells[0].Value.Equals("2222"))
    Das muss nicht so sein, suchte nur was die Zeile zu markieren. Ich weiß ja nicht was ich einscanne.

    Das DataGridView soll nur als Anzeige dienen, keine Einageb soll möglich sein, nicht editierbar.

    Danke für weitere Tipps.

    Ciao Andreas

    Mittwoch, 8. September 2010 19:05
  • Hallo Andreas,

    ich denke, Du hast mein Quellcode nicht so richtig verstanden/interpretiert.
    Der ist nur als Beispiel, wie man eine Zeile selektiert/markiert - "2222" ist doch nur ein Beispiel.
    Was Du dann letztlich für die aktuelle Zeile wählst, ist Dir überlassen.

    Die Selektion solltest Du schon über den internen CurrencyManager des DataGridView machen, denn das Grid könnte zum Beispiel sortiert sein. Das Grid verwendet einen internen View - und den musst Du eben ansprechen - sprich, die Reihenfolge im DataSource hat ggf. nicht mit der in der Ansicht zu tun.

       CurrencyManager cm = dGVMaterial.BindingContext[dGVMaterial.DataSource] as CurrencyManager;


    ist dieser CurrencyManager, der auch eine List-Eigenschaft hat, der diese quasi in der richtigen Reihenfolge hat.

    In Deinem Fall kann man diese List auch in BindingSource casten:

         BindingSource bs = cm.List as BindingSource;
         bs.Position = i;

    ciao Frank
    Donnerstag, 9. September 2010 05:08

  • Hallo Frank,

    wie bekomme ich über die akt. BindingSource die Tabellenwerte
      Charge
      Value
    ?

    Wie mache ich das Update. Herunterzählen, aktualisieren?

    siehe Bild
    http://www1.minpic.de/bild_anzeigen.php?id=123100&key=80227159&ende


    siehe Projekt.
    http://www.materialordner.de/Kqf6c8AFSKubuQpktyBZ9kGIHY78REIr.html

    Danke für die Antwort.

    Viele Grüße Andreas
    Donnerstag, 9. September 2010 08:30
  • > wie bekomme ich über die akt. BindingSource die Tabellenwerte Charge Value

    CurrencyManager cm = dGVMaterial.BindingContext[dGVMaterial.DataSource] 
        as CurrencyManager;
      BindingSource bs = cm.List as BindingSource;
      DataRowView drv = bs.Current as DataRowView;
      MessageBox.Show("Charge = " + drv["Charge"]);
      MessageBox.Show("Count = " + drv["Count"]);

    zu den anderer Fragen ggf. später.


    ciao Frank
    Donnerstag, 9. September 2010 09:14
  •  MessageBox
    .Show("Charge = " + drv["Charge"]);
      MessageBox
    .Show("Count = " + drv["Count"]);
    zu den anderer Fragen ggf. später.

    Hallo Frank,

    drv["Charge"].ToString() war noch unklar, wenn ich das Auslesen möchte. Da scheint zunächst alles ein String zu sein.

    Dank Deiner Hilfe bin ich jedoch weitergekommen.

    Nicht desto trotz, ganz optimal habe ich es nicht gelöst,
    so dass ich Deinen Rat / Dein Angebot gerne nochmals heranziehe.

    Wäre nett bis morgen eine Antwort zu erhalten.

    http://www.materialordner.de/xS7rZrH4cCbR5l8II2O2pBrv2zJT8bGv.html

    A) Wie würdest du das lösen.
       Prinzipiell geht es.
    B) Unterschied, falls ich ein Textfeld nehmen müsste mal, Tag,Text?
        http://www1.minpic.de/bild_anzeigen.php?id=123111&key=56085334&ende

    Grüße
     Andreas

    • Bearbeitet Andreas Bauer2 Donnerstag, 9. September 2010 20:19 Formatierung
    Donnerstag, 9. September 2010 10:32
  • Hallo Andreas,

    bzgl. Herunterzählen ist das doch ok, vielleicht noch so abändern.
          // Folgendes ist unsauber:
          // string count = drv["Count"].ToString();
          // Int32 newCount = Convert.ToInt32(count) - 1;



          // besser:
    int newCount = ((int)drv["Count"]) - 1;
          drv.BeginEdit();
          drv["Count"] = newCount;
          drv.EndEdit();

          > Tag <-> Text

    Also die Tag-Eigenschaft ist doch nur ein möglicher zusätzlicher Container, der bei einem Control eben Daten enthalten (speichern) kann. Aber das Binding ist hier bei Dir über die Text-Eigenschaft auszuführen und ja auch schon richtig umgesetzt. Die Tag-Eigenschaft brauchst Du nicht.
    Ansonsten müsstest Du noch mal die Frage präzise stellen, wozu Du die Belegung der Tag-Eigenschaft benötigst, aber wie gesagt, lass sie weg, die wäre in den meisten Fällen nur ein Notnagel.  


    ciao Frank
    • Als Antwort markiert Andreas Bauer2 Freitag, 10. September 2010 19:06
    Freitag, 10. September 2010 04:15

  • bzgl. Herunterzählen ist das doch ok, vielleicht noch so abändern.


    Hallo Frank,

    ok. Danke für den Tipp.
    Abschließende Frage zu diesem Thread.
    Wie könnte man folgendes realsieren?

    siehe Bild. http://www1.minpic.de/bild_anzeigen.php?id=123274&key=74407704&ende

    Aktive Zeile, Bearbeitung soll grün sein.
    Das wird eingescannt wird, aufgelegt wird gelb.
    Liste durchlaufen siehe #####

    Grüße Andreas

     private void btnDecrease_Click(object sender, EventArgs e)
        {
          DataRowView drv = BS.Current as DataRowView;
          if ( drv == null )
            return;
          //MessageBox.Show("Charge = " + drv["Charge"]); 
          //MessageBox.Show("Count = " + drv["Count"]);
          string charge = drv["Charge"].ToString();
          string count = drv["Count"].ToString();
    
          //Int32 newCount = Convert.ToInt32(count) - 1;
          //drv.BeginEdit();
          //drv["Count"] = newCount.ToString();
          //drv.EndEdit();
          int newCount = ((int)drv["Count"]) - 1;
          drv.BeginEdit();
          drv["Count"] = newCount;
          drv.EndEdit();
          if ( newCount == 0 )
          {
            drv.Delete();
            // ** Zeile selektieren
            BS.Position = dGVMaterial.Rows.Count;
            if ( dGVMaterial.Rows.Count > 1 )
              dGVMaterial.Rows[dGVMaterial.Rows.Count - 2].Selected = true;
          }
          for (int i = 0; i < dGVMaterial.Rows.Count; i++)
          {
            ###### ?
    
    
    

     

    Freitag, 10. September 2010 19:09
  • Hallo Andreas,

    siehe u.a.:

      dGVMaterial.Rows[0].DefaultCellStyle.BackColor = Color.Yellow;
      dGVMaterial.Rows[BS.Position].DefaultCellStyle.
    SelectionBackColor = Color.LightGreen;
    hängt davon ab, wie "bleibend" die Farben je nach Wechsel der Bindungs-Position sein sollen. Oder ob generell die SelectionBackColor grün sein soll. 
    Im letzteren Fall etwa:
      dGVMaterial.DefaultCellStyle.SelectionBackColor = Color.LightGreen;

    ciao Frank
    Freitag, 10. September 2010 19:45
  •   dGVMaterial.DefaultCellStyle.SelectionBackColor = Color
    .LightGreen;

    Hallo Frank,

    passt soweit alles.
    Kleinigkeit, wie erreiche ich dass das DataGridView automatisch scrollt.
    Sprich der erste gescannte Eintrag sichtbar ist. Das ist ja die Arbeitsposition.

    Grüße Andreas

    http://www1.minpic.de/bild_anzeigen.php?id=123573&key=81664352&ende

     

    public frmMaterialSettings()
        {
          InitializeComponent();
    
          CM = dGVMaterial.BindingContext[dGVMaterial.DataSource] as CurrencyManager;
          BS = CM.List as BindingSource;
    
    
          //dGVMaterial.Rows[0].DefaultCellStyle.BackColor = Color.Yellow; 
          //dGVMaterial.Rows[BS.Position].DefaultCellStyle.SelectionBackColor = Color.LightGreen; 
          
          //hängt davon ab, wie "bleibend" die Farben je nach Wechsel der Bindungs-Position sein sollen. 
          //Oder ob generell die SelectionBackColor grün sein soll. 
          //Im letzteren Fall etwa: 
          dGVMaterial.DefaultCellStyle.SelectionBackColor = Color.LightGreen;
        }
    
        private void btnTakeOverScan_Click(object sender, EventArgs e)
        {
         //for (int i = 0; i < dGVMaterial.Rows.Count; i++)
         //{
         // dGVMaterial.Rows[i].Selected = false;
         //}
          DataTable dt = dataSetMaterialSettings.tblMaterial;
          DataRow dr = dt.NewRow();
          dr["Charge"] = txtInputHandheldscanner.Text; 
          dr["Count"] = 10;
          dt.Rows.InsertAt(dr, 0);
         
          int nNewCount = dGVMaterial.Rows.Count;
        //   dGVMaterial.Rows[nNewCount-2].Selected = true;
          BS.Position = nNewCount;
    
          
          dGVMaterial.Rows[BS.Position].DefaultCellStyle.SelectionBackColor = Color.LightGreen;
    
          for (int i = 0; i < dGVMaterial.Rows.Count; i++)
          {
            if (i == 0)
              dGVMaterial.Rows[i].DefaultCellStyle.BackColor = Color.Yellow;
            else if (i != BS.Position)
              dGVMaterial.Rows[i].DefaultCellStyle.BackColor = Color.White;
          }
        }
    
    
     private void btnDecrease_Click(object sender, EventArgs e)
        {
          DataRowView drv = BS.Current as DataRowView;
          if ( drv == null )
            return;
          //MessageBox.Show("Charge = " + drv["Charge"]); 
          //MessageBox.Show("Count = " + drv["Count"]);
          string charge = drv["Charge"].ToString();
          string count = drv["Count"].ToString();
    
          //Int32 newCount = Convert.ToInt32(count) - 1;
          //drv.BeginEdit();
          //drv["Count"] = newCount.ToString();
          //drv.EndEdit();
    
          int newCount = ((int)drv["Count"]) - 1;
          drv.BeginEdit();
          drv["Count"] = newCount;
          drv.EndEdit();
    
    
          if ( newCount == 0 )
          {
            drv.Delete();
            // ** Zeile selektieren
            BS.Position = dGVMaterial.Rows.Count;
            if ( dGVMaterial.Rows.Count > 1 )
              dGVMaterial.Rows[dGVMaterial.Rows.Count - 2].Selected = true;
          }
    
    

     

     

    Montag, 13. September 2010 09:16
  • Hallo Andreas,

    es gibt zum Beispiel die Möglichkeit eine DataGridViewRow (/Band) auf Frozen=true zu setzen.
    Ansonsten DataGridView.FirstDisplayedScrollingRowIndex-Eigenschaft auf die gewünschte Zeile setzen.


    ciao Frank
    Montag, 13. September 2010 20:03
  • Hallo Andreas,

    es gibt zum Beispiel die Möglichkeit eine DataGridViewRow (/Band) auf Frozen=true zu setzen.
    Ansonsten DataGridView.FirstDisplayedScrollingRowIndex-Eigenschaft auf die gewünschte Zeile setzen.


    ciao Frank

    Hallo Frank, ich hab den RowIndex gewählt und geht.

    /Band Frozen was meinst du damit?

    Das ist nicht klar, vielleicht brauch ich es ja nicht.

    MUSS Kriterium Nicht editierbar -- Enable Eigenschaft.

    Grüße Andreas

     

    • Bearbeitet Andreas Bauer2 Freitag, 17. September 2010 10:36 vertippt
    Freitag, 17. September 2010 10:36
  • Hallo Andreas,

        > /Band Frozen was meinst Du damit?

    damit ist folgendes gemeint:

          if (dGVMaterial.Rows.Count > 0)
            dGVMaterial.Rows[0].Frozen = true;

    Damit kann eine Zeile beim Scrollen an ihrem Platz verbleiben, was mir ggf. vorteilhaft erschien, da Du ja ein gelbes und grüne Hintergrundfarbe so gleichzeitig immer im Blick halten kannst.
     
    [DataGridViewRow.Frozen-Eigenschaft (System.Windows.Forms)]
    http://msdn.microsoft.com/de-de/library/system.windows.forms.datagridviewrow.frozen.aspx

    Mit Band ist DataGridViewBand gemeint, denn DataGridViewRow ist ja nur davon abgeleitet.


    ciao Frank
    Samstag, 18. September 2010 18:00
  •     > /Band Frozen was meinst Du damit?

    damit ist folgendes gemeint:

          if (dGVMaterial.Rows.Count > 0)
            dGVMaterial.Rows[0].Frozen = true;

    Damit kann eine Zeile beim Scrollen an ihrem Platz verbleiben, was mir ggf. vorteilhaft erschien, da Du ja ein gelbes und grüne Hintergrundfarbe so gleichzeitig immer im Blick halten kannst.

    Hallo Frank,

    ja du hast Recht. Suppertipp. Wußte ich auch nicht.

    So habe ich den aktuellen Scan und die Abarbeitung im Blickfeld.

    Grüße Andreas

    Sonntag, 19. September 2010 10:33
  • Hallo Frank,

    ich kann es fast nicht glauben.

    Doch noch eine Frage.

    Es geht wieder nicht, wie es benötige.

     http://www1.minpic.de/bild_anzeigen.php?id=124317&key=43956841&ende

     

     

    Siehe void btnTakeOverScan_Click

    Frozen Eigenschaft, DataGridView richtig einsetzen.

    Wie?

     

    Oben aktuelle Daten.

    Unten, letzte Zeile à Abarbeitung.

    Wäre nochmals nett. Danke im voraus!

     

    Grüße Andreas

    //Die Idee ist gut.
    //Wenn die Liste > Einträge hat, bis die Scrollbar kommt, sollte die erste Zeile stehen bleiben.
    //Immer sichtbar sein.
    private void frmMaterialSettings_Load(object sender, EventArgs e)
        {
          if (dGVMaterial.Rows.Count > 0)
            dGVMaterial.Rows[0].Frozen = true;
        }
    
    Wo ist der richtige Platz für den Code?
      private void btnDecrease_Click(object sender, EventArgs e)
        {
    
    
    private void btnTakeOverScan_Click(object sender, EventArgs e)
        {
          DataGridViewBand band;
          DataGridViewCellStyle style;
          if (BS.Position > 0)
          {
            band = dGVMaterial.Rows[BS.Position];
            band.Frozen = false;
            style = new DataGridViewCellStyle();
            style.BackColor = Color.White;
            band.DefaultCellStyle = style;
          }
    
         //for (int i = 0; i < dGVMaterial.Rows.Count; i++)
         //{
         // dGVMaterial.Rows[i].Selected = false;
         //}
          DataTable dt = dataSetMaterialSettings.tblMaterial;
          DataRow dr = dt.NewRow();
          dr["Charge"] = txtInputHandheldscanner.Text; 
          dr["Count"] = 10;
          dt.Rows.InsertAt(dr, 0);
         
          int nNewCount = dGVMaterial.Rows.Count;
        //   dGVMaterial.Rows[nNewCount-2].Selected = true;
          BS.Position = nNewCount;
          dGVMaterial.FirstDisplayedScrollingRowIndex = nNewCount-1;
          
          dGVMaterial.Rows[BS.Position].DefaultCellStyle.SelectionBackColor = Color.LightGreen;
    
         
    
    
          for (int i = 0; i < dGVMaterial.Rows.Count; i++)
          {
            if (i == 0)
              dGVMaterial.Rows[i].DefaultCellStyle.BackColor = Color.Yellow;
            else if (i != BS.Position)
              dGVMaterial.Rows[i].DefaultCellStyle.BackColor = Color.White;
    
            //if (dGVMaterial.Rows.Count > 0)
            //  dGVMaterial.Rows[0].Frozen = true;
          }
    
          band = dGVMaterial.Rows[BS.Position];
          band.Frozen = true;
          style = new DataGridViewCellStyle();
          style.BackColor = Color.WhiteSmoke;
          band.DefaultCellStyle = style;
        }
    
    
    Hier gibt es keinen C# Code
    http://msdn.microsoft.com/de-de/library/system.windows.forms.datagridviewrow.frozen(v=VS.90).aspx
    
    Da habe ich noch geschaut.
    http://msdn.microsoft.com/de-de/library/system.windows.forms.datagridviewband(v=VS.90).aspx
    
    
    
    

    Montag, 20. September 2010 17:18
  • Hallo Frank,

    hast du noch eine Idee?

    Grüße Andreas

    Mittwoch, 22. September 2010 04:24
  • Hallo Andreas,

    im Zweifelsfall schick mir mal das Projekt.  Post(add)FranksSeite.de.
    Wahrscheinlich steht folgende Zeile zu früh und eher an eine spätere Stelle verschoben werden:

         if
    (dGVMaterial.Rows.Count > 0)
             dGVMaterial.Rows[0].Frozen = true;


    ciao Frank
    Mittwoch, 22. September 2010 05:49
  • Im Zweifelsfall schick mir mal das Projekt.  Post(add)FranksSeite.de.
    Wahrscheinlich steht folgende Zeile zu früh und eher an eine spätere Stelle verschoben werden:

         if
    (dGVMaterial.Rows.Count > 0)
             dGVMaterial.Rows[0].Frozen = true;


    ciao Frank

    Guten Morgen Frank,

    ich hab's Dir zukommen lassen. Danke im Voraus.

    Grüße Andreas

    Freitag, 24. September 2010 04:28
  • Hallo Frank,

    falls es nicht geklappt hat. Anbei so die Datei. http://www.materialordner.de/odTY8339amvO7GVbM9wdIUMlmZWpyFjL.html

    Grüße Andreas

    Samstag, 25. September 2010 12:34
  • Im Zweifelsfall schick mir mal das Projekt.  Post(add)FranksSeite.de.

    Hallo Frank,

    kurze Abstimmung. Habe ich was falsch gemacht oder geht es einfach nicht, wie ich es mir vorstelle. Bitte kurze Rückinfo.

    Danke im voraus.

    Grüße Andreas

    Montag, 27. September 2010 20:44
  • Hallo Andreas,

    wir sind gerade umgezogen (sorry), es kann noch etwas dauern ...


    ciao Frank
    Dienstag, 28. September 2010 06:41
  • wir sind gerade umgezogen (sorry), es kann noch etwas dauern ...

    Hallo Frank,

    kein Problem, nur nicht vergessen, ich sehe es ja dann. Wäre nett.

    Viep Spass beim Umzug, falls Du immer noch dabei bist. Geht es in eine andere Stadt? Du erwähntest mal, dass du mehr ASP.NET,C# als nur das reine C# machen wolltest.

    Schönes Wochenende

    Andreas

    Samstag, 2. Oktober 2010 15:04
  • Hallo Frank,

    kein Problem, nur nicht vergessen, ich sehe es ja dann.

    Wäre nett, kurze Info ob du es noch anschaust.

    Falls ja, DANKE im voraus.

    Grüße Andreas

     

    Freitag, 8. Oktober 2010 17:51
  •  

    Wäre nett, kurze Info ob du es noch anschaust.

    Falls ja, DANKE im voraus.


    Hallo Frank,

    habe ich keine Chance auf ein kurzes Statement.

    Wäre nett.

    Grüße Andreas

    Sonntag, 10. Oktober 2010 11:18
  • Hallo Andreas, :-)

    so nach vielen Kartons - wenig Intenet - und viel bei der Arbeit zu tun jetzt ein paar Dinge zu Deiner nächsten Frage, die ggf alle separat in neuen Fragen gestellt werden sollten.

    Ich nehme mal an, die Frage von Dir ist:

    - Wie kann ich es schaffen, dass die gelbe Zeile auch nach
      mehrmaligem Drücken der „TakeOver“ Taste immer zusammen
      mit der aktuellen angezeigt wird?
      Oder allgemeiner für die anderen: wie kann ich es schaffen, dass trotz
      Zufügung von beliebig vielen Zeilen im Grid immer sichtbar und gefärbt sind?

    Ich habe in Deinem Projekt folgendes eingefügt:

      private void btnTakeOverScan_Click(object sender, EventArgs e)
      {
       if (dGVMaterial.Rows.Count > 0) dGVMaterial.Rows[0].Frozen = false;
      
       // . . . Dein vorheriger Quellcode
    
       if (dGVMaterial.Rows.Count > 0) dGVMaterial.Rows[0].Frozen = true;
      } 
    

    vielleicht nicht die beste Möglichkeit, aber da Dir die Zeit drängt, vielleicht schon mal ein Rettungsanker :-)
    btw: Bin jetzt ein paar Stunden weg. 


    ciao Frank
    Sonntag, 10. Oktober 2010 12:16
  • Rettungsanker :-)
    btw: Bin jetzt ein paar Stunden weg. 



    Hallo Frank,

    ja,machen wir es so, ich stelle ggf. eine neue Frage.

    Evtl. machst du auch mal in Deine Sammlung First In, First Out was rein  -- FiFo Prinzip.

    Brauchen bestimmt mehrere. Wäre nett, wenn Du dann mal wieder komplett eingerichtet bist.

    Interessehalber, ist Deine Firma oder bist du umgezogen? Weiter weg?

    Grüße Andreas

    Montag, 11. Oktober 2010 21:23