我正在嘗試在 WPF 中撰寫一個四合一游戲。
我想以編程方式插入文本框,這是我的游戲框。它現在可以作業,但我不知道之后如何用按鈕控制它們,因為我不能使用我分配給它們的名稱。
目標是在按下按鈕后更改文本框的背景顏色。
public MainWindow()
{
InitializeComponent();
int x = 100;
int y = 190;
for (int i = 1; i < 43; i )
{
TextBox tbx = new TextBox();
tbx.Name = "Field" i;
tbx.Height = tbx.Width = 50;
tbx.HorizontalAlignment = HorizontalAlignment.Left;
tbx.VerticalAlignment = VerticalAlignment.Top;
tbx.Margin = new Thickness(x, y, 0, 0);
myGrid.Children.Add(tbx);
x = 55;
if (i % 7 == 0)
{
y = 55;
x = 100;
}
}
}
這是到目前為止的樣子
uj5u.com熱心網友回復:
將文本框存盤在二維陣列中。使用類欄位:
private TextBox[,] textBoxes = new TextBox[7, 7];
整數除法和模運算在從 0 到 N-1 編號時效果最佳。如果你從 0 開始編號 i,你可以寫
x = 100 (i % 7) * 55;
y = 190 i / 7 * 55;
// and
textBoxes[i % 7, i / 7] = tbx;
然后您可以訪問textBoxes[column, row]兩個索引都在 0 到 6 之間的文本框。
但是您可以簡單地使用嵌套的 for 回圈而不是進行任何索引計算
for (int ix = 0; ix < 7; ix ) {
for (int iy = 0; iy < 7; iy ) {
int x = 100 55 * ix;
int y = 190 55 * iy;
var tbx = new TextBox();
tbx.Height = tbx.Width = 50;
tbx.HorizontalAlignment = HorizontalAlignment.Left;
tbx.VerticalAlignment = VerticalAlignment.Top;
tbx.Margin = new Thickness(x, y, 0, 0);
myGrid.Children.Add(tbx);
textBoxes[ix, iy] = tbx;
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/521335.html
標籤:C#wpfwpf-文本框
