1

そのため、フォームに 9 つのボタンがあり、ボタンを押すと、9 つのボタンのいずれかを選択し、テキストを「random」に変更したいと考えています。Visual Basic 2008/2010 でそれを行うにはどうすればよいですか?

みたいなことを考えていた

 For Each buttons In Panel1.Controls
         If TypeName(buttons) = "Button" Then
               //select a random button and change his text to "random"
          End If
 Next buttons
4

1 に答える 1

1
var buttons = from controls in this.Controls.OfType<Button>() select controls;

buttons.ElementAt(new Random().Next(buttons.Count())).Text = "random";

私はVBを使用していないので、これをC#で行いました。VB と同じ/非常に似ている可能性があります。

編集:コメントに答えるには、次のようなことを試してください:

var buttons = (from controls in this.Controls.OfType<Button>() where !controls.Text.Equals("random") select controls);

if (buttons.Count() > 0)
{
    buttons.ElementAt(new Random().Next(buttons.Count())).Text = "random";
}
于 2012-09-23T11:43:47.763 に答える