2016-03-07 61 views
0

我有生成textBox的代码,因此无法一一给出属性。 文本框需要你只能输入数字,尽量键击,但我不能给它分配:c中的TableLayoutPanel#

我设法如下定义一些属性:

tableLayoutPanel1.Controls [a * size+ b].enabled = false; 
    tableLayoutPanel1.Controls [a * size + b]= Color.FromArgb.BackColor (255, 255, 153); 
    tableLayoutPanel1.Controls [a + b * size].font = new Font(tableLayoutPanel1.Controls [a + b * size].font, FontStyle.Bold); 

但“环球”事件对我的textBox生成是不可能的。 此外,我需要的textAlign设置,我试过如下:

tableLayoutPanel1.TextAlign = ContentAlignment.MiddleCenter 

但我不承认“textAlign设置”。

因此,他们是比较简单的问题,但已经花了我的时间乱投医:(

PD:我的事件按键响应是:

private void keyPress(object sender, KeyPressEventArgs e) 
    { 
     if (((e.KeyChar) < 48 && e.KeyChar != 8) || e.KeyChar > 57) 
     { 
      e.Handled = true; 
     } 
    } 

,但我不能它asigned到生成的文本框感谢

+0

你所问的并不完全清楚。 'TableLayoutPanel'没有文本,它只是一个容器控件,所以不需要'TextAlign'属性 – Plutonix

+0

是的,但是我想在创建文本框时编辑文本框内的文本。 –

+0

'但是我为textBox生成的“全局”事件是不可能的。您只需将每个TextBox的KeyPress事件分配给您所写的keyPress方法。如果需要,请检查sender参数以查看哪个TextBox正在触发事件。 TableLayoutPanel单元格在它们中只能有一个父控件,并且通过Controls集合访问它们的方式相当糟糕(你的方法甚至工作吗?)。 TableLayoutPanel控件上的一个简单教程可以帮助你很多。 – LarsTech

回答

0
private void Txt_KeyPress(object sender, KeyPressEventArgs e) 
    { 
     if (((e.KeyChar) < 48 && e.KeyChar != 8) || e.KeyChar > 57) 
     { 
      e.Handled = true; 
     } 
    } 

    private void Form1_Load(object sender, EventArgs e) 
    { 
     TextBox txt = new TextBox(); 
     txt.KeyPress += Txt_KeyPress; // attach event handler to textbox created at runtime. 
     tableLayoutPanel1.Controls.Add(txt); 
    } 

如果上面的代码不会解决你的问题,只是说明干杯评论!

+0

这是否解决了问题?请评论您的反馈。 –