2016-03-07 65 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

這是否解決了問題?請評論您的反饋。 –