我在Winform應用程序上有一些按鈕,並且使用以下代碼更改了它們的背景顏色和文本。Winform應用程序中的按鈕文本
List<Button> buttons = new List<Button>();
foreach (Button bt in panel1.Controls)
{
if (bt is Button)
{
buttons.Add(bt);
}
}
int btext = 1;
foreach (var button in buttons)
{
button.Text = btext.ToString();
button.BackColor = Color.White;
btext++;
}
但是上觀看的形式時,其在按鈕的網格的底部右側運行按鈕具有在網格的左上角的文本「1」,按鈕的文本「36」顯示在它。我希望並且認爲,它應該是相反的。爲什麼會這樣,我該如何改變它?非常感謝。通過控制的位置
List<Button> buttons = new List<Button>();
foreach (var bt in panel1.Controls)
{
if (bt is Button)
{
buttons.Add((Button)bt);
}
}
var lst = buttons.OrderBy(x => x.PointToScreen(Point.Empty).Y).ThenBy(x => x.PointToScreen(Point.Empty).X);
int btext = 1;
foreach (var button in lst)
{
button.Text = btext.ToString();
button.BackColor = Color.White;
btext++;
}
好了,所以我要做的就是改變線條詮釋btext = 36;和btext - ;但我仍然不明智,爲什麼我需要這樣做。 – user995689
你使用過設計師嗎?因爲 - 據我所知 - 控件按字母順序實例化。所以如果你遍歷'panel1'的控件,你將按照字母順序遍歷你的按鈕。這可以解釋爲什麼你必須逆轉你的循環。 – basti