所以我正在使用VS2010 C#和Crystal Reports。我正在开发一个程序,让用户可以创建最多11个参数字段,然后将它们放在他想要的任何地方。为此,我创建了一个 TableLayoutPanel ,并使用点击处理程序填充了小标签,并将其用作文档的“预览”,以便用户可以选择参数字段的位置以及文档的外观。
for (int row = 0; row < tableLayoutPanel1.RowCount; row++)
{
for (int column = 0; column < tableLayoutPanel1.ColumnCount; column++)
{
Label label = new Label();
label.Click += new EventHandler(label_Click);
tableLayoutPanel1.Controls.Add(label, column, row);
}
}
单击标签时,我使用其边界设置参数字段的位置( int [] pos )。
private void label_Click(object sender, EventArgs e)
{
int[] pos = new int[2];
Label aux = (Label)sender;
int x, y;
x = aux.Bounds.X;
y = aux.Bounds.Y;
label8.Text = "X: " + x;
label9.Text = "Y: " + y;
pos[0] = x;
pos[1] = y;
try
{
objects.Add(comboBox1.SelectedItem.ToString(), pos);
aux.BackColor = Color.Black;
}
catch (ArgumentException ex)
{
MessageBox.Show("You've already set the field: " + comboBox1.SelectedItem);
}
}
这里的问题是,当选择标签时,为了让用户知道它,我只是改变了背景颜色,但是当你必须放置11个字段时,结果是一堆微小的黑色方块,你无法知道哪个方块是什么,它不提供准确的预览。此外,我试图使用图像,但标签是小的方式,这是有用的。
实现此doc预览/位置选择器的更好,更优雅的方法是什么?