@Mystere Man: Si potrebbe desiderare una casella di testo che non può essere utilizzato per tutto il tempo. Ad esempio, consento all'utente di creare caselle di testo su una tela e trascinarle. Per impedire loro di selezionare e spostare il testo durante il trascinamento, è necessario disabilitare l'input dell'utente e anche la selezione del testo deve essere disabilitata perché causa un ritardo che compromette la funzione di trascinamento. Nella mia applicazione l'utente può modificare una casella di testo solo quando ha fatto doppio clic su di esso e deve quindi fare clic all'esterno della casella di testo per poterlo spostare di nuovo.
Io fondamentalmente hanno questo codice (in cui t è un TextBox):
// Prevent text entry
t.IsReadOnly = true;
// Prevent text selection
t.Focusable = false;
Questo comportamento è preferibile disabilitando l'intero controllo (t.Enabled = false
), poiché ciò anche arrestare eventi MouseDown e DoubleClick, che bloccherebbe trascinando e passando dalla modalità di modifica alla modalità di trascinamento dal lavoro. Per non parlare del fatto che la casella di testo diventerebbe grigia.
che si sta per bisogno di spiegare di più. La disattivazione, per definizione, rende impossibile il controllo. A meno che il controllo non sia qualcosa come un'etichetta, che non è selezionabile per cominciare, allora il concetto di "non selezionabile" ma comunque una casella di testo si escludono a vicenda. Ad esempio, come pensi di far scorrere il testo nella casella di testo se non riesci a selezionarlo? –
Questa non è una correzione, poiché il testo sarà ancora selezionabile, ma è possibile impostare il cursore su Predefinito anziché su IBeam. Ciò renderà la selezione del testo una scelta meno ovvia per l'utente. "TextBox1.Label.Cursor = Cursors.Default; " – amalgamate