Windows Forms Shortcut Problem

  • C#
  • .NET (FX) 4.5–4.8

Es gibt 16 Antworten in diesem Thema. Der letzte Beitrag () ist von Skaterkeks.

    Windows Forms Shortcut Problem

    Guten Morgen.

    Ich hätte mal eine kleine Frage,

    ich versuche gerade, mit Windows Forms ein Programm zu entwickeln, welches per Shortcut zulässt, das alles was groß geschrieben wurde in einem Satz, kleingeschrieben wird.

    Also: Man Kopiert einen Text, diese wird kopiert, man drückt die Taste und fügt es ein. Demnach ist alles im Satz danach klein geschrieben.

    Wenn ich diese auf eine Taste (Bsp F2 ) funktioniert dies nun auch tadellos.

    Problem an der Geschichte ist nun, das ich es erweitern möchte mit einer neuen Form, worin man sich seine Tastenkombination selbst legen kann.

    Ich weiß allerdings nun nicht, wie ich von der einen Form in die andere Form die Methoden verknüpfen kann.

    Also, das funktioniert schon, allerdings funktioniert dann die Tastenkombination für jede Taste.

    Ich hoffe auf viele Antworten.

    Liebe Grüße,

    Skaterkeks

    Thema verschoben ~VaporiZed
    Bilder
    • Bild_2022-07-19_085108980.png

      56,85 kB, 718×467, 48 mal angesehen
    • Bild_2022-07-19_085130606.png

      70,67 kB, 569×738, 52 mal angesehen

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „VaporiZed“ ()

    Willkommen im Forum.

    Statt mit Code-Screenshots zu arbeiten, wäre der Code als

    C#-Quellcode

    1. Code
    sinnvoller gepostet gewesen.

    Du hast jetzt

    C#-Quellcode

    1. Form2 form = new Form2;
    Und danach wertest Du was von form aus. Ohne, dass form vorher (z.B. als Dialog) angezeigt wurde? So wie die Screenshots aussehen, scheint das nicht zu klappen. Tja, und warum jetzt jede Taste funktioniert? Dazu müsste man den Code vollständig sehen.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    @Skaterkeks Willkommen im Forum. :thumbup:
    Falls Du mit C# (CSharp) arbeitest, gib bitte diesem Deinem Thread oben den richtigen Code-Tag.
    Zum Aufruf von Dialogen kannst Du auch mal hier rein schauen: Dialoge: Instanziierung von Forms und Aufruf von Dialogen
    den Teil mit den VB.NET-Default-Instanzen kannst Du überlesen.
    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!
    Zuerst könntest Du die Logik Deines Programms für Dich und uns aufklären. Du übergibst einen Key an form, also die Form2-Instanz. In der wird aber combobox1.Text ausgewertet. Und diese combobox1 ist wahrscheinlich auf form. Nur: Wie soll der ComboBox-Text vom User oder wemauchimmer beeinflusst werden, wenn form nicht angezeigt wird?
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Ich versuche das nochmal ausführlich von vorne zu beginnen.

    Es gibt eine Form 1. Diese läuft im Hintergrund, ist quasi auch garnicht sichtbar.

    In dieser Form funktionierte es so, wenn man einen Text kopierte, die Taste F9 drückte kam eine MessageBox "Aktiviert!".
    Dadurch war er in der Lage, jeden beliebeigen Text, den er kopierte sich in kleinbuchstaben wieder ausgeben zu lassen.

    Nun hatte ich eine 2. Form "entwickelt" worin sich der Nutzer selber aussuchen konnte, welche Taste er für den Hotkey verwenden möchte.

    Diese sah so aus

    C#-Quellcode

    1. public VKeys kbHook_KeyUp(VKeys key)
    2. {
    3. switch (comboBox1.Text)
    4. {
    5. case "A":
    6. key = VKeys.KEY_A;
    7. break;
    8. case "B":
    9. key = VKeys.KEY_B;
    10. break;
    11. case "C":
    12. key = VKeys.KEY_C;
    13. break;
    14. case "D":
    15. key = VKeys.KEY_D;
    16. break;
    17. case "E":
    18. key = VKeys.KEY_E;
    19. break;
    20. case "F":
    21. key = VKeys.KEY_F;
    22. break;
    23. case "G":
    24. key = VKeys.KEY_G;
    25. break;
    26. case "H":
    27. key = VKeys.KEY_H;
    28. break;
    29. case "I":
    30. key = VKeys.KEY_I;
    31. break;
    32. case "J":
    33. key = VKeys.KEY_J;
    34. break;
    35. case "K":
    36. key = VKeys.KEY_K;
    37. break;
    38. case "L":
    39. key = VKeys.KEY_L;
    40. break;
    41. case "M":
    42. key = VKeys.KEY_M;
    43. break;
    44. case "N":
    45. key = VKeys.KEY_N;
    46. break;
    47. case "O":
    48. key = VKeys.KEY_O;
    49. break;
    50. case "P":
    51. key = VKeys.KEY_P;
    52. break;
    53. case "Q":
    54. key = VKeys.KEY_Q;
    55. break;
    56. case "R":
    57. key = VKeys.KEY_R;
    58. break;
    59. case "S":
    60. key = VKeys.KEY_S;
    61. break;
    62. case "T":
    63. key = VKeys.KEY_T;
    64. break;
    65. case "U":
    66. key = VKeys.KEY_U;
    67. break;
    68. case "V":
    69. key = VKeys.KEY_V;
    70. break;
    71. case "W":
    72. key = VKeys.KEY_W;
    73. break;
    74. case "X":
    75. key = VKeys.KEY_X;
    76. break;
    77. case "Y":
    78. key = VKeys.KEY_Y;
    79. break;
    80. case "Z":
    81. key = VKeys.KEY_Z;
    82. break;
    83. case "F1":
    84. key = VKeys.F1;
    85. break;
    86. case "F2":
    87. key = VKeys.F2;
    88. break;
    89. case "F3":
    90. key = VKeys.F3;
    91. break;
    92. case "F4":
    93. key = VKeys.F4;
    94. break;
    95. case "F5":
    96. key = VKeys.F5;
    97. break;
    98. case "F6":
    99. key = VKeys.F6;
    100. break;
    101. case "F7":
    102. key = VKeys.F7;
    103. break;
    104. case "F8":
    105. key = VKeys.F8;
    106. break;
    107. case "F9":
    108. key = VKeys.F9;
    109. break;
    110. case "F10":
    111. key = VKeys.F10;
    112. break;
    113. case "F11":
    114. key = VKeys.F11;
    115. break;
    116. case "F12":
    117. key = VKeys.F12;
    118. break;
    119. }
    120. return key;


    Ich möchte, wenn der Nutzer sich nun entscheidet, ich nehme bsp den Buchstaben A, das aus dem

    C#-Quellcode

    1. public VKeys keyboardHook_KeyUp(VKeys key)
    2. {
    3. if (key == VKeys.F9)
    4. {
    5. try
    6. {
    7. StreamWriter sw = new StreamWriter(Path.Combine(path, "lowCase.txt"));
    8. var wandel = Clipboard.GetText();
    9. Clipboard.SetText(wandel.ToLower());
    10. sw.Write(DateTime.Now.ToLongTimeString() + " " + wandel.ToString());
    11. sw.Close();
    12. MessageBox.Show("Aktiviert!");
    13. }
    14. catch
    15. {
    16. MessageBox.Show("Bitte Text markieren!");
    17. }
    18. }
    19. return key;


    im if Statement die Auswahl vom Nutzer "überschrieben" wird.

    Problem ist bei mir gerade, ich weiß leider nicht, wie ich diese miteinander so kombinieren kann, sodass er immer die IF "überschreibt"


    Ich hoffe, ich konnte es halbwegs besser erklären.

    Hier evtl auch mal meine KeyboardHook

    C#-Quellcode

    1. using System;
    2. using System.Runtime.InteropServices;
    3. using System.Diagnostics;
    4. namespace LowCaser
    5. {
    6. /// <summary>
    7. /// Class for intercepting low level keyboard hooks
    8. /// </summary>
    9. public class KeyboardHook
    10. {
    11. #region WinAPI
    12. private const int WM_KEYDOWN = 0x100;
    13. private const int WM_SYSKEYDOWN = 0x104;
    14. private const int WM_KEYUP = 0x101;
    15. private const int WM_SYSKEYUP = 0x105;
    16. [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
    17. private static extern IntPtr SetWindowsHookEx(int idHook, KeyboardHookHandler lpfn, IntPtr hMod, uint dwThreadId);
    18. [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
    19. [return: MarshalAs(UnmanagedType.Bool)]
    20. private static extern bool UnhookWindowsHookEx(IntPtr hhk);
    21. [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
    22. private static extern IntPtr CallNextHookEx(IntPtr hhk, int nCode, IntPtr wParam, IntPtr lParam);
    23. [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
    24. private static extern IntPtr GetAsyncKeyState(IntPtr hhk, int nCode, IntPtr wParam, IntPtr lParam);
    25. [DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
    26. private static extern IntPtr GetModuleHandle(string lpModuleName);
    27. #endregion
    28. #region Enum Vkeys
    29. public enum VKeys
    30. {
    31. LBUTTON = 0x01, // Linke Maus
    32. RBUTTON = 0x02, // Rechte Maus
    33. MBUTTON = 0x04, // Mitte von der Maus
    34. // 0x07 // Undefined
    35. BACK = 0x08, // Zurück
    36. TAB = 0x09, // TAB
    37. //
    38. SHIFT = 0x10, // SHIFT key
    39. CONTROL = 0x11, // CTRL key
    40. MENU = 0x12, // ALT key
    41. PAUSE = 0x13, // PAUSE key
    42. CAPITAL = 0x14, // CAPS LOCK key
    43. // 0x1A, // Undefined
    44. ESCAPE = 0x1B, // ESC key
    45. CONVERT = 0x1C, // IME convert
    46. NONCONVERT = 0x1D, // IME nonconvert
    47. ACCEPT = 0x1E, // IME accept
    48. MODECHANGE = 0x1F, // IME mode change request
    49. SPACE = 0x20, // SPACEBAR
    50. PRIOR = 0x21, // PAGE UP key
    51. NEXT = 0x22, // PAGE DOWN key
    52. END = 0x23, // END key
    53. HOME = 0x24, // HOME key
    54. LEFT = 0x25, // LEFT ARROW key
    55. UP = 0x26, // UP ARROW key
    56. RIGHT = 0x27, // RIGHT ARROW key
    57. DOWN = 0x28, // DOWN ARROW key
    58. SELECT = 0x29, // SELECT key
    59. PRINT = 0x2A, // PRINT key
    60. EXECUTE = 0x2B, // EXECUTE key
    61. SNAPSHOT = 0x2C, // PRINT SCREEN key
    62. INSERT = 0x2D, // INS key
    63. DELETE = 0x2E, // DEL key
    64. HELP = 0x2F, // HELP key
    65. KEY_0 = 0x30, // 0 key
    66. KEY_1 = 0x31, // 1 key
    67. KEY_2 = 0x32, // 2 key
    68. KEY_3 = 0x33, // 3 key
    69. KEY_4 = 0x34, // 4 key
    70. KEY_5 = 0x35, // 5 key
    71. KEY_6 = 0x36, // 6 key
    72. KEY_7 = 0x37, // 7 key
    73. KEY_8 = 0x38, // 8 key
    74. KEY_9 = 0x39, // 9 key
    75. // 0x3A-0x40, // Undefined
    76. KEY_A = 0x41, // A key
    77. KEY_B = 0x42, // B key
    78. KEY_C = 0x43, // C key
    79. KEY_D = 0x44, // D key
    80. KEY_E = 0x45, // E key
    81. KEY_F = 0x46, // F key
    82. KEY_G = 0x47, // G key
    83. KEY_H = 0x48, // H key
    84. KEY_I = 0x49, // I key
    85. KEY_J = 0x4A, // J key
    86. KEY_K = 0x4B, // K key
    87. KEY_L = 0x4C, // L key
    88. KEY_M = 0x4D, // M key
    89. KEY_N = 0x4E, // N key
    90. KEY_O = 0x4F, // O key
    91. KEY_P = 0x50, // P key
    92. KEY_Q = 0x51, // Q key
    93. KEY_R = 0x52, // R key
    94. KEY_S = 0x53, // S key
    95. KEY_T = 0x54, // T key
    96. KEY_U = 0x55, // U key
    97. KEY_V = 0x56, // V key
    98. KEY_W = 0x57, // W key
    99. KEY_X = 0x58, // X key
    100. KEY_Y = 0x59, // Y key
    101. KEY_Z = 0x5A, // Z key
    102. LWIN = 0x5B, // Left Windows key (Microsoft Natural keyboard)
    103. RWIN = 0x5C, // Right Windows key (Natural keyboard)
    104. APPS = 0x5D, // Applications key (Natural keyboard)
    105. // 0x5E, // Reserved
    106. SLEEP = 0x5F, // Computer Sleep key
    107. NUMPAD0 = 0x60, // Numeric keypad 0 key
    108. NUMPAD1 = 0x61, // Numeric keypad 1 key
    109. NUMPAD2 = 0x62, // Numeric keypad 2 key
    110. NUMPAD3 = 0x63, // Numeric keypad 3 key
    111. NUMPAD4 = 0x64, // Numeric keypad 4 key
    112. NUMPAD5 = 0x65, // Numeric keypad 5 key
    113. NUMPAD6 = 0x66, // Numeric keypad 6 key
    114. NUMPAD7 = 0x67, // Numeric keypad 7 key
    115. NUMPAD8 = 0x68, // Numeric keypad 8 key
    116. NUMPAD9 = 0x69, // Numeric keypad 9 key
    117. MULTIPLY = 0x6A, // Multiply key
    118. ADD = 0x6B, // Add key
    119. SEPARATOR = 0x6C, // Separator key
    120. SUBTRACT = 0x6D, // Subtract key
    121. DECIMAL = 0x6E, // Decimal key
    122. DIVIDE = 0x6F, // Divide key
    123. F1 = 0x70, // F1 key
    124. F2 = 0x71, // F2 key
    125. F3 = 0x72, // F3 key
    126. F4 = 0x73, // F4 key
    127. F5 = 0x74, // F5 key
    128. F6 = 0x75, // F6 key
    129. F7 = 0x76, // F7 key
    130. F8 = 0x77, // F8 key
    131. F9 = 0x78, // F9 key
    132. F10 = 0x79, // F10 key
    133. F11 = 0x7A, // F11 key
    134. F12 = 0x7B, // F12 key
    135. F13 = 0x7C, // F13 key
    136. F14 = 0x7D, // F14 key
    137. F15 = 0x7E, // F15 key
    138. F16 = 0x7F, // F16 key
    139. F17 = 0x80, // F17 key
    140. F18 = 0x81, // F18 key
    141. F19 = 0x82, // F19 key
    142. F20 = 0x83, // F20 key
    143. F21 = 0x84, // F21 key
    144. F22 = 0x85, // F22 key, (PPC only) Key used to lock device.
    145. F23 = 0x86, // F23 key
    146. F24 = 0x87, // F24 key
    147. }
    148. #endregion
    149. private delegate IntPtr KeyboardHookHandler(int nCode, IntPtr wParam, IntPtr lParam);
    150. private KeyboardHookHandler hookHandler;
    151. public delegate VKeys KeyboardHookCallback(VKeys key);
    152. #region Events
    153. public event KeyboardHookCallback KeyDown;
    154. public event KeyboardHookCallback KeyUp;
    155. #endregion
    156. private IntPtr hookID = IntPtr.Zero;
    157. public void Install()
    158. {
    159. hookHandler = HookFunc;
    160. hookID = SetHook(hookHandler);
    161. }
    162. public void Uninstall()
    163. {
    164. UnhookWindowsHookEx(hookID);
    165. }
    166. private IntPtr SetHook(KeyboardHookHandler proc)
    167. {
    168. using (ProcessModule module = Process.GetCurrentProcess().MainModule)
    169. return SetWindowsHookEx(13, proc, GetModuleHandle(module.ModuleName), 0);
    170. }
    171. private IntPtr HookFunc(int nCode, IntPtr wParam, IntPtr lParam)
    172. {
    173. if (nCode >= 0)
    174. {
    175. int iwParam = wParam.ToInt32();
    176. if ((iwParam == WM_KEYDOWN || iwParam == WM_SYSKEYDOWN))
    177. if (KeyDown != null)
    178. KeyDown((VKeys)Marshal.ReadInt32(lParam));
    179. if ((iwParam == WM_KEYUP || iwParam == WM_SYSKEYUP))
    180. if (KeyUp != null)
    181. KeyUp((VKeys)Marshal.ReadInt32(lParam));
    182. }
    183. return CallNextHookEx(hookID, nCode, wParam, lParam);
    184. }
    185. ~KeyboardHook()
    186. {
    187. Uninstall();
    188. }
    189. }
    190. }​

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Skaterkeks“ ()

    Noml gooonz longsom.
    Wo befindet sich combobox1? Also, auf welchem Form?
    Wie wird combobox1.text geändert?
    Diese Fragen sind deshalb, weil Post#1 impliziert, dass combobox1 ein Teil von Form2 ist, von Form2 eine Instanz namens form erstellt wird und sofort danach eben combobox1.text ausgewertet wird.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    combobox1 befindet sich auf Form2.

    Ich brauch aber die Werte, die man von der Form2 combox auswählt, auf der Form1, die im Hintergrund läuft.

    Ich würde das halt mal gerne zeigen, aber das ist etwas umständlich hier.

    Ich füge auch nochmal ein Bild von der Form2 ein.
    Bilder
    • Bild_2022-07-19_114602703.png

      5,69 kB, 492×202, 37 mal angesehen
    @Skaterkeks Von der Parent-Form kommst Du auf die Child-Form, indem Du ihr eine geeignete Methode oder Property gibst.
    Von der Child-Form kommst Du auf die Parent-Form, indem sie an diese ein Event sendet.
    Die VB-Umsetzung findest Du in meinem in Post #3 verwiesenen Thread.
    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!
    An welcher Stelle im Programmablauf wird form (die Form2-Instanz) dem User zur Laufzeit gezeigt, sodass er was aus der combobox1 auswählen kann? Und: Wie lautet der Code zur Instanziierung und Anzeige jener Form2-Instanz?
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    direkt beim start der Anwendung wird dem Nutzer die form2 angezeigt.
    Habe auch mittlerweile es geändert von einer Combobox in eine Textbox

    C#-Quellcode

    1. public partial class Form2 : Form
    2. {
    3. public Form2()
    4. {
    5. KeyboardHook kbHook = new KeyboardHook();
    6. InitializeComponent();
    7. kbHook.KeyUp += new KeyboardHookCallback(kbHook_KeyUp);
    8. }
    9. private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
    10. {
    11. label2.Text = textBox1.Text;
    12. }
    13. private void button1_Click(object sender, EventArgs e)
    14. {
    15. MessageBox.Show("Sie haben " + label2.Text + " ausgewählt");
    16. Form1 form = new Form1();
    17. Form2 form2 = new Form2();
    18. form2.ShowDialog(form);
    19. if (textBox1.Text == "")
    20. {
    21. MessageBox.Show("Bitte eine Kombination eingeben!");
    22. }
    23. }
    24. private void button2_Click(object sender, EventArgs e)
    25. {
    26. Close();
    27. }
    28. private void Form2_Load(object sender, EventArgs e)
    29. {
    30. MessageBox.Show("Hier können Sie auswählen, welche Tastatur belegt wird für Ihre LowCase");
    31. label1.Text = "Es wurde ausgewählt: ";
    32. }
    33. public VKeys kbHook_KeyUp(VKeys key)
    34. {
    35. IDictionary<string, VKeys> dict = new Dictionary<string, VKeys>();
    36. if(textBox1.Text == dict.ToString())
    37. {
    38. dict.Add("A", VKeys.KEY_A);
    39. dict.Add("B", VKeys.KEY_B);
    40. dict.Add("C", VKeys.KEY_C);
    41. dict.Add("D", VKeys.KEY_D);
    42. dict.Add("E", VKeys.KEY_E);
    43. dict.Add("F", VKeys.KEY_F);
    44. dict.Add("G", VKeys.KEY_G);
    45. dict.Add("H", VKeys.KEY_H);
    46. dict.Add("I", VKeys.KEY_I);
    47. dict.Add("J", VKeys.KEY_J);
    48. dict.Add("K", VKeys.KEY_K);
    49. dict.Add("L", VKeys.KEY_L);
    50. dict.Add("M", VKeys.KEY_M);
    51. dict.Add("N", VKeys.KEY_N);
    52. dict.Add("O", VKeys.KEY_O);
    53. dict.Add("P", VKeys.KEY_P);
    54. dict.Add("Q", VKeys.KEY_Q);
    55. dict.Add("R", VKeys.KEY_R);
    56. dict.Add("S", VKeys.KEY_S);
    57. dict.Add("T", VKeys.KEY_T);
    58. dict.Add("U", VKeys.KEY_U);
    59. dict.Add("V", VKeys.KEY_V);
    60. dict.Add("W", VKeys.KEY_W);
    61. dict.Add("X", VKeys.KEY_X);
    62. dict.Add("Y", VKeys.KEY_Y);
    63. dict.Add("Z", VKeys.KEY_Z);
    64. dict.Add("F1", VKeys.F1);
    65. dict.Add("F2", VKeys.F2);
    66. dict.Add("F3", VKeys.F3);
    67. dict.Add("F4", VKeys.F4);
    68. dict.Add("F5", VKeys.F5);
    69. dict.Add("F6", VKeys.F6);
    70. dict.Add("F7", VKeys.F7);
    71. dict.Add("F8", VKeys.F8);
    72. dict.Add("F9", VKeys.F9);
    73. dict.Add("F10", VKeys.F10);
    74. dict.Add("F11", VKeys.F11);
    75. dict.Add("F12", VKeys.F12);
    76. }
    77. return key;
    78. }
    79. private void btnOk_Click(object sender, EventArgs e)
    80. {
    81. MessageBox.Show("Sie haben " + label2.Text + " ausgewählt");
    82. Form1 form = new Form1();
    83. Form2 form2 = new Form2();
    84. form2.Visible = false;
    85. form.Hide();
    86. }
    87. }
    88. }


    Das ist der gesamte Form2.cs Code
    @Skaterkeks Lässt sich das nicht mit frm.KeyPreview = true; und einem entsprechenden KeyDown-Eventhandler lösen?
    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!
    8|
    Was'n das für'n Chaos? Warum hat Form2 eine Möglichkeit, von sich selbst auf Knopfdruck eine Instanz zu erzeugen, und dann von form1 gleich noch mit. Also dieser Programmverlauf ist für mich absolut nicht nachvollziehbar, von daher bin ich (auch aus Zeitgründen) erstmal raus.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.

    Skaterkeks schrieb:

    noch nicht richtig genug erklärt.
    Erkläre rein verbal was passieren soll ohne dass Du Code dazu postest.
    Sei bereit, dass wir Dein Konzept völlig über den Haufen werfen.
    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!
    Form1 Funktioniert ohne jegliche Sichtbarkeit. Mit (Gerade F9 ) Taste wird alles was in einem Satz Groß geschrieben ist - klein geschrieben.

    Man kopiert quasi den Satz, drückt F9 und beim einfügen ist alles klein geschrieben

    Soll nun erweitern in dem man selber auswählen kann, welche Taste man nutzen möchte, um alles was groß geschrieben ist, kleinzuschreiben