Announcement

Collapse
No announcement yet.

Zugreifen auf public voids in einer Form aus anderen Voids

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Zugreifen auf public voids in einer Form aus anderen Voids

    Hallo,

    ich habe die letzten Jahre VB programmiert und wollte mich nun mal an C# ran machen ^^

    In VB habe ich z.B. ein einem Windows-Formular public sub's erstellt, die ich aus meiner Skript-Libary aufgerufen haben
    z.B. um nicht in jedem Formular den selben Code zu schreiben.
    Dazu habe ich beim Aufruf einer Libary die Form mit übertragen (z.B. sowas


    public sub StdKeyEvent (byval formular as Form)
    if e.keycode = keys.Enter then
    formular.löschen
    end if
    end sub

    In dem Windows-Formular gibt es dann auch:
    public sub löschen
    tut was ...
    end sub

    Das funktionierte in VB wunderbar. In c# funktioniert aber formular.löschen nicht weil C# die Methode nicht findet
    Gibt es in C# eine ähnliche Lösung ?

    Sorry ist vielleicht ne blöde Frage aber ich finde nichts derartiges
    Danke

  • #2
    Methoden in C# https://docs.microsoft.com/de-de/dot...tructs/methods

    Da gibt es kein sub, end sub usw.

    Wenn es um C# geht, warum zeigst du nicht den Code, den du da geschrieben hast, sondern Code von VB?
    Christian

    Comment


    • #3
      Hi,
      danke für die Antwort. Ich dachte durch den VB Code wird deutlich was ich möchte. Hier der C# Code:

      namespace Test.Test
      {
      public partial class Form1: Form

      {
      public Form1()
      {
      InitializeComponent();
      }

      public void test()
      {
      MessageBox.Show("TEST");
      }
      .
      .
      ..

      Public void Test möchte ich aufrufen und zwar aus einer anderen Methode an der ich die Form übertrage
      So rufe ich Funk1 auf:in der Form1

      private void aufrufen()
      {
      Skript.Funk1(this);
      }



      Hier die Libary mit div. Skripten

      namespace Test.Globales
      {
      static class Skript
      {
      public static void Funk1(Form Formular)
      {
      Formular.test();
      }


      Hier meldet Formular.test einen Fehler:

      Comment


      • #4
        Du hast die Library auch eingebunden
        https://docs.microsoft.com/de-de/dot...-visual-studio

        Wozu wird der Umweg über die Library gemacht?
        Was hat diese für einen Sinn? Zumal sie "unterstellt" (ohne weitere Absicherung), dass das Formular eine Methode test() hat
        Wo ist da eine Codeersparnis?
        private void aufrufen()
        {
        test();
        }
        ist zu einfach?
        Zuletzt editiert von Christian Marquardt; 25.08.2020, 07:43.
        Christian

        Comment


        • #5
          Ich habe eine Library erstellt um mir Code zu sparen. Einfache Dinge die keine Methoden in Formularen aufrufen z.B. Mail senden. Aber eben auch Methoden aufrufen, die es in jedem Formular gibt. Das hier ist ja nur ein Beispiel
          Ich habe z.B. in Jeder Form einen KeyEvent auf allen Textbosen wo ich die Eingabetaste abfrage z.B. öffnet die Tast F9 in jedem Formular eine Suche

          Comment

          Working...
          X