C# 更改所选动态添加文本框的颜色
当我在文本框中单击鼠标按钮时,我试图设置单个文本框的背景色。我有一个框数组,总共81个,我正在动态地添加到表单中。我使用var num将它们命名为1-81。 我已经能够让它工作,但它增加了颜色的所有框,而不仅仅是我选择的一个C# 更改所选动态添加文本框的颜色,c#,winforms,C#,Winforms,当我在文本框中单击鼠标按钮时,我试图设置单个文本框的背景色。我有一个框数组,总共81个,我正在动态地添加到表单中。我使用var num将它们命名为1-81。 我已经能够让它工作,但它增加了颜色的所有框,而不仅仅是我选择的一个 //array of boxes TextBox[,] cell = new TextBox[9, 9]; //add boxes to form for (int row = 0; row < 9; row++) { for (int col = 0; col
//array of boxes
TextBox[,] cell = new TextBox[9, 9];
//add boxes to form
for (int row = 0; row < 9; row++)
{
for (int col = 0; col < 9; col++)
{
num += 1;
cell[row, col] = new TextBox();
cell[row, col].Name = Convert.ToString(num);
}
}
//handler
cell[row, col].MouseDown += new MouseEventHandler(cellMouseDown);
public void cellMouseDown(object sender, EventArgs e)
{
for (int row = 0; row < 9; row++)
{
for (int col = 0; col < 9; col++)
{
//code to add background color to textbox when selected
}
}
}
//框数组
TextBox[,]单元格=新的TextBox[9,9];
//将框添加到表单
对于(int行=0;行<9;行++)
{
for(int col=0;col<9;col++)
{
num+=1;
单元格[行,列]=新文本框();
单元格[行,列].Name=Convert.ToString(num);
}
}
//处理者
单元格[行,列].MouseDown+=新的MouseEventHandler(cellMouseDown);
public void cellMouseDown(对象发送方,事件参数e)
{
对于(int行=0;行<9;行++)
{
for(int col=0;col<9;col++)
{
//选择时向文本框添加背景色的代码
}
}
}
尽管您还有其他问题,但问题就这么简单
在创建它们时
for (int row = 0; row < 9; row++)
{
for (int col = 0; col < 9; col++)
{
num += 1;
cell[row, col] = new TextBox();
cell[row, col].Name = Convert.ToString(num);
cell[row, col].MouseDown += new MouseEventHandler(cellMouseDown);
}
}
其他资源
尽管你还有其他问题,但就这么简单 在创建它们时
for (int row = 0; row < 9; row++)
{
for (int col = 0; col < 9; col++)
{
num += 1;
cell[row, col] = new TextBox();
cell[row, col].Name = Convert.ToString(num);
cell[row, col].MouseDown += new MouseEventHandler(cellMouseDown);
}
}
其他资源
为什么需要循环
public void cellMouseDown(object sender, EventArgs e)
{
var txt = sender as TextBox;
txt.BackgroundColor = /*to whatever color you want*/
}
您还需要在循环内订阅处理程序:
for (int row = 0; row < 9; row++)
{
for (int col = 0; col < 9; col++)
{
num += 1;
cell[row, col] = new TextBox();
cell[row, col].Name = Convert.ToString(num);
cell[row, col].MouseDown += new MouseEventHandler(cellMouseDown);
}
}
for(int行=0;行<9;行++)
{
for(int col=0;col<9;col++)
{
num+=1;
单元格[行,列]=新文本框();
单元格[行,列].Name=Convert.ToString(num);
单元格[行,列].MouseDown+=新的MouseEventHandler(cellMouseDown);
}
}
为什么需要循环
public void cellMouseDown(object sender, EventArgs e)
{
var txt = sender as TextBox;
txt.BackgroundColor = /*to whatever color you want*/
}
您还需要在循环内订阅处理程序:
for (int row = 0; row < 9; row++)
{
for (int col = 0; col < 9; col++)
{
num += 1;
cell[row, col] = new TextBox();
cell[row, col].Name = Convert.ToString(num);
cell[row, col].MouseDown += new MouseEventHandler(cellMouseDown);
}
}
for(int行=0;行<9;行++)
{
for(int col=0;col<9;col++)
{
num+=1;
单元格[行,列]=新文本框();
单元格[行,列].Name=Convert.ToString(num);
单元格[行,列].MouseDown+=新的MouseEventHandler(cellMouseDown);
}
}
听起来像是一个数独游戏。用网格代替。听起来像是数独游戏。改用网格。