bn2vs
Terugkerende gebruiker
- Lid geworden
- 18 aug 2007
- Berichten
- 1.705
Ik zit al lang met dit probleem (heb het een paar maanden geleden hier al eens gepost als ik het goed heb), maar heb geen degelijke oplossingen gevonden.
Als je in een procedure ergens een control hebt die verschillende types kan zijn (textbox, button, ...), hoe kan je die dan allemaal gelijkaardig behandelen zonder een case voor elk type te gebruiken?
Dit is zo een procedure waar ik niet echt blij mee ben (dubbele code, en er zijn maar 2 typen mogelijk). focusedTxtField kan zowel een textbox als een richtextbox zijn.
Hoe gaat dit korter?
Alvast bedankt
Als je in een procedure ergens een control hebt die verschillende types kan zijn (textbox, button, ...), hoe kan je die dan allemaal gelijkaardig behandelen zonder een case voor elk type te gebruiken?
Dit is zo een procedure waar ik niet echt blij mee ben (dubbele code, en er zijn maar 2 typen mogelijk). focusedTxtField kan zowel een textbox als een richtextbox zijn.
Code:
Private Sub EDITToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles tmiUndo.Click, tmiRedo.Click, tmiCut.Click, tmiCopy.Click, tmiPaste.Click, tmiSelectAll.Click
Select Case True
Case TypeOf (focusedTxtField) Is TextBox
Dim txtBox As TextBox = CType(focusedTxtField, TextBox)
Select Case txtBox.Name
Case tmiUndo.Name : txtBox.Undo()
Case tmiCut.Name : txtBox.Cut()
Case tmiCopy.Name : txtBox.Copy()
Case tmiPaste.Name : txtBox.Paste()
Case tmiSelectAll.Name : txtBox.SelectAll()
End Select
Case TypeOf (focusedTxtField) Is RichTextBox
Dim txtBox As RichTextBox = CType(focusedTxtField, RichTextBox)
Select Case txtBox.Name
Case tmiUndo.Name : txtBox.Undo()
Case tmiRedo.Name : txtBox.Redo()
Case tmiCut.Name : txtBox.Cut()
Case tmiCopy.Name : txtBox.Copy()
Case tmiPaste.Name : txtBox.Paste()
Case tmiSelectAll.Name : txtBox.SelectAll()
End Select
End Select
End Sub
Hoe gaat dit korter?
Alvast bedankt