Combobox über DLL ansprechen

  • VB.NET
  • .NET (FX) 4.0

Es gibt 14 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Combobox über DLL ansprechen

    Hallo Liebe Community,
    Wie der Name oben schon klar stellt, möchte ich die Combobox6 von Form1 von einer DLL aus befüllen.
    Ich hab bloß keine Ahnung wie das bei Visual Studio 13 mit Net Framework 4 funktioniert.

    Hat jemand eine Idee ??

    LG
    Lizzacore
    Hä? Verstehe ich nicht. Hört sich aber nicht gut an, denn ein Control sollte nur immer von der selbigen Form alleine Zugriff erlauben.
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Also ich wollte um genau zu sein, Items in die Combobox einfügen, bisher habe ich das über die selbige form gemacht aber ich würde es Kompakter in der DLL finden.
    Gibt es überhaupt so eine Möglichkeit ? Habe ein Tutorial für VB 06 gefunden aber dieses funktioniert nicht bei mir.
    Was willst Du denn mit ner DLL?
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    OK, also das Programm ist sehr groß und wenn ich die mainframe lade dauert das alles sehr lange irgendwie wenn ich alles in der Form machen lasse.. deswegen benutze ich seit kurzen DLL´s, hab eigentlich nur gute Erfahrungen gemacht.
    Ich finde so lässt sich das einfacher und kompakter handhaben dazu kommt das ich finde das dass Programm viel schneller reagiert.
    Um Gottes Willen...
    Also. Du solltest lieber mit Multithreading, also ThreadPools, Tasks etc. arbeiten, damit die GUI nicht einfriert.

    DLLs sollte man nur verwenden, wenn man Klassenbibliotheken schreibt, ich verstehe immer noch nicht, was daran vorteilhaft sein soll.
    Beschreibe doch mal Dein Problem konkret, also Code, was genau das Problem ist etc.
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Also ich zeige dir jetzt wie ich es derzeit gut gelöst habe :

    Visual Basic-Quellcode

    1. [...]
    2. Private Sub Chevrolet()
    3. ComboBox6.Items.Clear()
    4. ComboBox6.Text = ""
    5. ComboBox6.Items.Add("2500")
    6. ComboBox6.Items.Add("400")
    7. ComboBox6.Items.Add("Agile")
    8. ComboBox6.Items.Add("Alero")
    9. ComboBox6.Items.Add("Astra")
    10. ComboBox6.Items.Add("Avalanche")
    11. ComboBox6.Items.Add("Aveo")
    12. ComboBox6.Items.Add("Baretta")
    13. ComboBox6.Items.Add("C1500")
    14. ComboBox6.Items.Add("Caprice")
    15. ComboBox6.Items.Add("Chavalier")
    16. ComboBox6.Items.Add("Camaro")
    17. ComboBox6.Items.Add("Citation")
    18. ComboBox6.Items.Add("Colorado")
    19. ComboBox6.Items.Add("Corsica")
    20. ComboBox6.Items.Add("Cruze")
    21. ComboBox6.Items.Add("El Camino")
    22. ComboBox6.Items.Add("Epica")
    23. ComboBox6.Items.Add("Evanda")
    24. ComboBox6.Items.Add("Express")
    25. ComboBox6.Items.Add("G")
    26. ComboBox6.Items.Add("HHR")
    27. ComboBox6.Items.Add("Impala")
    28. ComboBox6.Items.Add("K1500")
    29. ComboBox6.Items.Add("K30")
    30. ComboBox6.Items.Add("Kalos")
    31. ComboBox6.Items.Add("Lacetti")
    32. ComboBox6.Items.Add("Lumina")
    33. ComboBox6.Items.Add("Malibu")
    34. ComboBox6.Items.Add("Matiz")
    35. ComboBox6.Items.Add("Nubira")
    36. ComboBox6.Items.Add("Orlando")
    37. ComboBox6.Items.Add("Rezzo")
    38. ComboBox6.Items.Add("Blazer")
    39. ComboBox6.Items.Add("S-10")
    40. ComboBox6.Items.Add("Silverado")
    41. ComboBox6.Items.Add("Spark")
    42. ComboBox6.Items.Add("SSR")
    43. ComboBox6.Items.Add("Suburban")
    44. ComboBox6.Items.Add("Tahoe")
    45. ComboBox6.Items.Add("Trailblazer")
    46. ComboBox6.Items.Add("Trans Sport")
    47. ComboBox6.Items.Add("Trax")
    48. ComboBox6.Items.Add("Venture")
    49. ComboBox6.Items.Add("Volt")
    50. ComboBox6.Items.Add("C2")
    51. ComboBox6.Items.Add("Captiva")
    52. ComboBox6.Items.Add("Celta")
    53. ComboBox6.Items.Add("Chevelle")
    54. ComboBox6.Items.Add("Chevy")
    55. ComboBox6.Items.Add("Classic")
    56. ComboBox6.Items.Add("Corsa")
    57. ComboBox6.Items.Add("Ipanema")
    58. ComboBox6.Items.Add("Kadett")
    59. ComboBox6.Items.Add("Meriva")
    60. ComboBox6.Items.Add("Monza")
    61. ComboBox6.Items.Add("Montana")
    62. ComboBox6.Items.Add("Niva")
    63. ComboBox6.Items.Add("Omega")
    64. ComboBox6.Items.Add("Opala")
    65. ComboBox6.Items.Add("Prisma")
    66. ComboBox6.Items.Add("S10")
    67. ComboBox6.Items.Add("Sedan")
    68. ComboBox6.Items.Add("Station Wagon")
    69. ComboBox6.Items.Add("Tavera")
    70. ComboBox6.Items.Add("Veraneio")
    71. ComboBox6.Items.Add("Vectra")
    72. ComboBox6.Items.Add("Viva")
    73. ComboBox6.Items.Add("Zafira")
    74. End Sub
    75. [...]
    76. Select Case ComboBox5.Text
    77. Case "AC"
    78. AC()
    79. Case "Abarth"
    80. Abarth()
    81. Case "Acura"
    82. Acura()
    83. Case "Aixam"
    84. Aixam()
    85. [...] ' usw...

    Das Programm soll alle Autos wie Automarken zur verfügung stellen und in einer Combobox anzeigen lassen.
    Zurzeit finde ich das alles beim erst start ( Aufrufen der Mainframe ) sehr laggt für eine sekunde lang danach läuft es eigentlich sehr flüssig.
    Ich dachte mich nur da ich zurzeit alles auf DLL´s auslager, weil wie ich es finde besser und übersichtlicher ist, dachte ich wäre es mit diesem Das gleiche.
    Ich dachte mir aber auch das es nicht so leicht kann eben genau wegen den Control etc.

    Also wenn das nicht geht komm ich damit auch ganz gut klar.
    Das hat mit DLLs nix zu tun. Die helfen da auch nicht, im Gegenteil. Was Du brauchst, ist wie ich sagte Multithreading und gescheites DataBinding an der ComboBox.
    msdn.microsoft.com/de-de/library/x8ybe6s2(v=vs.90).aspx
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Entschuldigung für den Doppel post aber herzlichen dank für den Tipp :)
    Die Smoothness ist mehr den je :D
    Benutze Multithreading UND DLLs und es läuft so gut wie noch nie, so schnell einfach unglaublich :D
    Das mit dem Offline DB habe ich jetzt verstanden, läuft auch teilweise, weiß nur noch nicht wie ich das mit den von marke zu Modell machen soll :/
    PS.: Habe jetzt ein teil der Modelle schon durch :/

    LG
    Du hast offensichtlich keine Ahnung für was diese sind und sie bringen dir in diesem Fall keinerlei Vorteile. Verkompliziert die Sache nur.


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.
    Bitte ließ dir das
    https://www.vb-paradise.de/index.php/Thread/55403-DatasetOnly-DB-Programmierung-ohne-Datenbank/
    das
    https://www.vb-paradise.de/index.php/Thread/65467-Daten-laden-speichern-verarbeiten-einfachste-Variante/
    und das
    https://www.vb-paradise.de/index.php/Thread/94955-die-vier-Views-auf-Video/
    komplett durch bzw. schau dir beim letzten die Videos an.
    DLLs sind hier völlig fehl am Platz und Multithreading brauchst du gar nicht, verkompliziert die Sache nur unnötig. Wichtig ist nur, dass dus richtig machst, dann läuft das auch so schon schnell genug (und ohne ne Zeile manuell geschriebenen Code, sei mal angemerkt).
    @lizzacore Vielleicht machst Du das testweise mal über den esigner und dann siehst Du Dir an, wie das im Studio richtig gelöst wird:
    Prozedur InitializeComponents() in der Datei FormX.Designer.vb.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!