| Autor |
Beitrag |
Joey86
      
Beiträge: 56
|
Verfasst: Mi 17.03.10 16:10
Hi!
Ich würde gern mittels eines Button abfragen können, welchen Status derzeit meine ComboBox besitzt.
Code meines Buttons und des EventHandlers:
C#-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| public void StartUpButton() { comboBox = this.commandBar.Controls.Add(Office.MsoControlType.msoControlComboBox, missing, missing, missing, true) as Office.CommandBarComboBox;
comboBox.AddItem("ComboBoxItem1", 1); comboBox.AddItem("ComboBoxItem2", 2);
comboBox.Caption = "ComboBox";
comboBox.Tag = "myComboBox"; comboBox.Change += new Microsoft.Office.Core._CommandBarComboBoxEvents_ChangeEventHandler(ComboBox_Change); }
static void ComboBox_Change(Microsoft.Office.Core.CommandBarComboBox ctrl) { MessageBox.Show("Changed " + ctrl.Text); } |
Wie bekomme ich jetzt aber durch einen Button heraus, ob gerade Item 1, 2 oder gar keines selektiert ist?
Gruß Moderiert von Kha: Topic aus Algorithmen, Optimierung und Assembler verschoben am Mi 17.03.2010 um 19:00
|
|
Xearox
      
Beiträge: 260
Erhaltene Danke: 3
|
Verfasst: Mi 17.03.10 16:31
also in Delphi würde ich das so machen
Delphi-Quelltext 1: 2: 3: 4: 5: 6:
| if Checkbox1.Checked then ShowMessage('Checkbox1 ist aktiviert'); if Checkbox2.Checked then Showmessage('Checkbox2 ist aktiviert'); if not Checkbox1.Checked and Checkbox2.Checked then Showmessage('Keine Checkbox ist Aktiviert'); |
also wäre jetzt das erste, was mir dazu einfällt.
Ich kenne mich nicht mit C# aus, aber ich denke, das es so ähnlich sein müsste.
|
|
JüTho
      
Beiträge: 2021
Erhaltene Danke: 6
Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
|
Verfasst: Mi 17.03.10 17:10
@Xearox
In C# gibt es genauso wie in Delphi einen Unterschied zwischen ComboBox und CheckBox.
@jfheins
Du hast zwar recht, dass der TE mit einer speziellen ComboBox arbeitet. Aber deine Links nützen ebenfalls nicht, weil sich das auf VBA 2003 bezieht. C# arbeitet aber mit .NET.
@Joey86
Welche .NET-Version benutzt du? Woher kommt die Assembly, die zu Microsoft.Office.Core gehört?
Dein Code kommt mir überhaupt spanisch vor:
* Ist Change wirklich ein Ereignis? Dies heißt üblicherweise Changed.
* Einen EventHandler als static zu deklarieren???
* Jedes Ereignis unter .NET muss deklariert werden mit "(object sender, XxxEventArgs e)". Was soll das bei dir?
Zu deiner eigentlichen Frage: Schreib an der Stelle, die dich interessiert, den Punkt und warte ab, was die IDE dir dazu anbietet. Da sollte es mehrere Möglichkeiten geben, die mit Selected anfangen.
Jürgen
Zuletzt bearbeitet von JüTho am Mi 17.03.10 17:24, insgesamt 2-mal bearbeitet
|
|
jfheins
      
Beiträge: 918
Erhaltene Danke: 158
Win 10
VS 2013, VS2015
|
Verfasst: Mi 17.03.10 17:10
Erstmal: Geht es um eine Checkbox oder um eine ComboBox oder um ganz was anderes?
Dem Code entnehme ich, dass es sich um eine CommandBarComboBox handelt (wäre einzuordnen unter "ganz was anderes" ...). Wenn ja, sollte diese zwei Links relevant sein:
msdn.microsoft.com/e...0739(office.11).aspx (index)
msdn.microsoft.com/e...1219(office.11).aspx (Text)

|
|
Joey86 
      
Beiträge: 56
|
Verfasst: Mi 17.03.10 18:06
Danke zunächst mal für die Hilfe, vor allem dir Thomas.
Werde meinen Code optimieren.
Bin hier wohl schon länger angemeldet, dennoch Anfänger und vor allem im Bereich .NET
habe ich so gut wie 0 Erfahrung. Daher muss ich jetzt leider fragen:
Was genau meinst du Thomas, mit "Woher kommt die Assembly, die zu Microsoft.Office.Core gehört". =/
Ich verwende .NET 3.5
Selected oder ähnliches wird mir gar nicht angeboten.
Allerdings/nur accSelection --> bringt mir allerdings nichts.
Wäre euch dankbar für weitere Unterstützung.
|
|
JüTho
      
Beiträge: 2021
Erhaltene Danke: 6
Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
|
Verfasst: Mi 17.03.10 18:26
Joey86 hat folgendes geschrieben : | | Danke zunächst mal für die Hilfe, vor allem dir Thomas. |
Wer hat denn hier den Namen "Thomas" benutzt? Ich nicht. Wenn du mich mit "Thomas" anreden willst, dann bitte mit "Herr" und "Sie"; aber in einem Forum passt nichts davon.
Joey86 hat folgendes geschrieben : | | Was genau meinst du Thomas, mit "Woher kommt die Assembly, die zu Microsoft.Office.Core gehört". |
Es gibt mehrere mögliche Antworten (nebenbei: Assembly ist Oberbegriff für EXE und DLL unter .NET):
* Bei deinem Projekt hast du unter "Referenzen hinzufügen" eine DLL ausgewählt, die dazu benötigt wird.
* Irgendwo muss diese DLL gespeichert sein.
* Irgendwann/-wo/-wie muss diese DLL installiert worden sein.
Es ist nicht gesagt, dass sie Microsoft.Office.Core.dll heißt; es ist Microsoft.Office.dll oder Microsoft.Core.dll oder noch etwas anderes denkbar.
Findest du in deiner Hilfe keine Informationen zu Microsoft.Office.Core oder CommandBarComboBox? Gibt es keine separate Hilfe dazu?
Joey86 hat folgendes geschrieben : | | Ich verwende .NET 3.5 |
Gut zu wissen. Dann kann ich u.U. nicht weiterhelfen, aber ein paar Tipps noch geben.
Joey86 hat folgendes geschrieben : | | Selected oder ähnliches wird mir gar nicht angeboten. |
Es wundert mich. Üblicherweise wird eine solche spezielle ComboBox von der Standard-ComboBox abgeleitet. Also stehen alle Eigenschaften in der abgeleiteten Variante zur Verfügung, insbesondere auch SelectedText, SelectedIndex, SelectedItem, SelectedValue.
Gruß Jürgen
|
|
Kha
      
Beiträge: 3803
Erhaltene Danke: 176
Arch Linux
Python, C, C++ (vim)
|
Verfasst: Mi 17.03.10 20:12
JüTho hat folgendes geschrieben : | | Findest du in deiner Hilfe keine Informationen zu Microsoft.Office.Core oder CommandBarComboBox? Gibt es keine separate Hilfe dazu? |
Gibt es, jfheins hat sie oben verlinkt. Für MS Office Automation existiert anscheinend nur die VBA-Hilfe, aber genauer kenne ich mich damit auch nicht aus. Also CommandBarComboBox.Index.
@ Joey86: Was ist das genau, ein Office-Addin? Solche essentiellen Informationen solltest du uns nicht verschweigen.
_________________ >λ=
Zuletzt bearbeitet von Kha am Do 18.03.10 01:01, insgesamt 1-mal bearbeitet
|
|
Xearox
      
Beiträge: 260
Erhaltene Danke: 3
|
Verfasst: Mi 17.03.10 21:22
JüTho hat folgendes geschrieben : | @Xearox
In C# gibt es genauso wie in Delphi einen Unterschied zwischen ComboBox und CheckBox.
|
oops, hab mich verlesen, sorry
|
|
Joey86 
      
Beiträge: 56
|
Verfasst: Do 18.03.10 00:27
JüTho hat folgendes geschrieben : |
Wer hat denn hier den Namen "Thomas" benutzt? Ich nicht. Wenn du mich mit "Thomas" anreden willst, dann bitte mit "Herr" und "Sie"; aber in einem Forum passt nichts davon.
|
- Sorry, meinte natürlich Jürgen!
- Hierbei handelt es sich um die Microsoft.Office.Interop.Excel.dll.
- COM-Add-Ins sind Zusatzkomponenten, mit denen man Office-Anwendungen erweitern kann. Programmiert werden sie grundsätzlich als ActiveX-Komponenten - daher rührt auch das "COM" (Component Object Model) im Namen - und normalerweise kommen sie als DLLs daher.
- Die Möglichkeiten hab ich: msdn.microsoft.com/e...ibrary/aa433295.aspx
Leider hat mir davon bislang nichts weitergeholfen. =/
Ich danke euch, für die bisherigen Beiträge.
Werd mir die Sache morgen nochmal anschauen, bin für weitere Tipps/Vorschläge dankbar.
|
|
JüTho
      
Beiträge: 2021
Erhaltene Danke: 6
Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
|
Verfasst: Do 18.03.10 10:20
Danke für diese Zusatzinformationen; die waren sehr, sehr nützlich.
| Zitat: | | Leider hat mir davon bislang nichts weitergeholfen. |
Aber ich glaube, ich kann damit etwas anfangen. Ich schlage vor, mit ListIndex und ggf. List[ListIndex] weiterzuarbeiten.
Gruß Jürgen
|
|
Joey86 
      
Beiträge: 56
|
Verfasst: Do 18.03.10 14:43
Ah klasse, das wars...^^
Danke!
|
|