Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Datagridview Zeile mit Browse Button - Button nur für eine Spalte
Siedlerchr
myCSharp.de - Member



Dabei seit:
Beiträge: 178
Herkunft: NRW

Themenstarter:

Datagridview Zeile mit Browse Button - Button nur für eine Spalte

beantworten | zitieren | melden

Hallo zusammen,

ich habe folgendes praktisches gefunden:
DataGridView-Zelle mit Browse-Button
Dort wird in einer Zelle ein Browse Button hinzugefügt.
Die relevante Stelle ist die hier:

 void dgv_EditingControlShowing(object sender,DataGridViewEditingControlShowingEventArgs e)
    {
      if (dgv.CurrentCell.ColumnIndex != dt.LinkColumn.Ordinal) return;
      Button btn = new Button(); btn.Dock = DockStyle.Right;
      btn.Name = "btnOpen"; btn.Text = "..."; btn.Width = 25;
      if (!dgv.EditingPanel.Controls.ContainsKey(btn.Name))
        dgv.EditingPanel.Controls.Add(btn);
      btn.Click += new EventHandler(btn_Click);
      btn.BringToFront();
    }
Das funktioniert soweit
Allerdings wird mir dieser "Browse Button" für jede Spalte angzeigt, obwohl nicht beabsichtigt.

Ich habe das auch schon mit anderen Events wie CellEnter oder CellClick getestet und dort die Spalte abgefragt, aber er fügt es trotzdem für jede Spalte ein.
Besteht die Chance, das man das hinbekommt, dass das nur bei 1 Spalte angezeigt wird?
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 49.486
Herkunft: Berlin

beantworten | zitieren | melden

Hallo Siedlerchr,

meine Vermutung ins Blaue ist, dass du den Button eher e.Control oder vielleicht dgv.EditingControl hinzufügen musst, aber nicht dgv.EditingPanel.

herbivore
private Nachricht | Beiträge des Benutzers
Siedlerchr
myCSharp.de - Member



Dabei seit:
Beiträge: 178
Herkunft: NRW

Themenstarter:

beantworten | zitieren | melden

Hi,

ich habe da mal mit deinen Vorschlägen rumgetestet, funktioniert so leider nicht.
Zum einen werden da wieder für alle die Buttons angezeigt und zum Anderen wird der Button jeweils nur so halb angezeigt.

Ich habe mir jetzt nen Workaround geschaffen:


   if  (dgvProjectInfo.CurrentCell.OwningColumn == dgvProjectInfo.Columns["ProjectInfoProjectCode"])
            {
                ShowProjectCodesWithButton(dgvProjectInfo);
            }
            else
            {
dgvProjectInfo.EditingPanel.Controls.RemoveByKey("btnProjectCodes");
 
            }


So entferne ich einfach den Button bei den Spalten bei denen ich den nicht benötige, bei der anderen Spalte erzeuge ich ihn dann neu.
private Nachricht | Beiträge des Benutzers