2

私は WPF と C# を使用してアプリケーションに取り組んでいます。ウィンドウには、ユーザーが必要とする数の 5 列と行のグリッドに多数の textBoxes が配置されています。次のように動作します: 最初に 5 つの textBoxes の最初の行が表示され、ユーザーが適切な値を入力しENTER、行の 5 番目の textBox にヒットするとすぐに、新しい同様の textBoxes の新しい行が生成されます。これは起こり続けます。各 textBox には、RegisterNameメソッドとループを使用して一意の名前が付けられます。

今私の問題は、ウィンドウに約25個のテキストボックスを持つ5行をすでに作成しているとします。3 行目のテキスト ボックスの 1 つに注目し、適切な KeyDown イベントを発生させる何かを入力します。この keydown イベントでは、このイベントの原因となったすべての textBoxのNameが必要です。どうやってやるの?

これが完了すると、その行の他のすべてのテキストボックスにアクセスするのにも役立ちます。これは、それらの名前に使用されている命名法を知っているためです。助けてください。

4

2 に答える 2

2

次のようなものを試すことができます:

FrameworkContentElement.RegisterName関数Nameと共にプロパティも設定することに注意してください。

var box = new TextBox();
var itemName = "Unique Identifier";  // Change this to your unique name per box
this.RegisterName(itemName, box);
box.Name = itemName;
box.KeyDown += (sender, args) => {
  var textBox = sender as TextBox;
  if (textBox != null)
    MessageBox.Show(textBox.Name);  // Would show "Unique Identifier"
};
于 2013-04-21T10:47:34.423 に答える
1

こんにちは、このイベントを TextBox に使用してください

TextBox_PreviewKeyDown(object sender, KeyEventArgs e)

テキストボックスのIDを取得するには、タグと組み合わせてsenderパラメーターを使用します。

 i.e.     TextBox textbox = (TextBox)sender;
于 2013-04-21T05:43:10.217 に答える