5

WPF アプリケーションで Mac アドレスを表示しています。そのMACアドレスを選択してコピー/貼り付けできるようにしたいので、ReadOnly TextBoxを使用しています

ユーザーがダブルクリックすると、MacAddress 全体を選択したい

WPF と Windows のデフォルトの動作は、コロンの間の数字の部分をダブルクリックして選択することで、MAC アドレスが 00:55:66:77:99 の場合です。

ユーザーがダブルクリックすると、MACアドレスの一部(55など)のみが選択されますテキストボックスのコンテンツ全体を選択するコードなしの方法はありますか

または、テキストボックスを使用しないでください。

ありがとう

4

4 に答える 4

6

テキストボックスのMouseDoubleClickイベントで、テキストボックスのSelectAll()メソッドを呼び出して、その中のすべてのテキストを選択できます。

void textBox_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
    (sender as TextBox).SelectAll();
}
于 2009-12-03T19:04:04.217 に答える
1

残念ながら、これを TextBox で直接行う方法はないと思います。

そうは言っても、添付プロパティまたは式の動作 (私の好み) を介して、この動作をテキスト ボックスに追加するのは簡単です。選択が変更されていることを確認し、何かが選択されている場合はすべてを選択します。その後、コード ビハインド ファイルにコードを追加することなく、これを他の場所で簡単に再利用できます。まだコードを追加していますが、実際の UserControl または Window クラスではなく、xaml に挿入される再利用可能なコンポーネントに追加しています。

于 2009-12-03T18:19:21.127 に答える
0

動作のアイデアは気に入りましたが、Blend関連のアセンブリを再配布する必要があり、Blendについてはまだわかりません。そのため、テキストボックスから継承する新しいタイプのテキストボックスを作成し、mousedoubleclick時にselectAllを実行することになります。

すべての答えをありがとう

于 2009-12-03T19:56:09.697 に答える
0

MouseDoubleClick イベントを処理することはできませんか? それ以外の場合は、部分的な選択を常に防止したい場合は、SelectionChanged イベントを処理できます。どちらの場合でも、SelectAll メソッドを使用できます。

再読したところ、コード以外のソリューションが必要であることがわかりました。残念ながら、私は何も知りません。

于 2009-12-03T18:17:57.150 に答える