2011年4月19日 星期二

C# Label 換行

1. 問題

    Label 在winform中進行換行

2.解法

   方法一:在字串中欲斷行的位置加入"\r\n"
                 
                   如textBox換行方式一樣
 
   方法二:(1) 設定 Label.AutoSize = true;

                   (2) 設定 Label.Dock = DockStyle.Fill;

                   (4) 設定 Label.MaximumSize = new System.Drawing.Size(寬度, 0);

                   (5) 此時你所要顯示的字如果超過設定"寬度",就會自動斷行。

3.如果要讓Label隨著Form的大小變化的話

    (1) 把MaximumSize的寬度設為Form的寬度

    (2) 當Form變化時,先把目前的控制項先移除,再重新繪制Label

    例子

    int labelWidth = Form.Width;
    Form.Resize += new System.EventHandler(this.Form_Resize);

    private void printLabel()
   {
       
         clearForm();
         Label.AutoSize = true;
         Label.Dock = DockStyle.Fill;
         Label.MaximumSize = new System.Drawing.Size(labelWidth, 0);
   }

   private void Form_Resize(object sender, EventArgs e)
   {
            Form f = (Form)sender;        
            labelWidth = f.Width      
            printLabel();    
   }

    private void clearForm()
   {
            this.SuspendLayout();
            Form.Controls.Clear();
            this.ResumeLayout(false);
            this.PerformLayout();
   }

4.延伸閱讀

   http://dev.firnow.com/course/4_webprogram/asp.net/netjs/2007926/74504.html

C# TextBox換行

1. 問題

     TextBox在winform裡要如何換行

2. 解法
   
    (1)將textbox中的Multiline属性设置为true
 
    (2)在要斷行的地方加入 "\r\n"

3.例子

   第一個第二個第三個中,要每一個都在不同行
   texbox.text = "第一個\r\n第二個\r\n第三個";
 
  顯示方式就會變成

  第一個
  第二個
  第三個

4.延伸閱讀

 http://developer.51cto.com/art/200909/150860.htm

2011年4月13日 星期三

C# 限制TextBox僅能輸入數字

1. 問題:

    限制TextBox在輸入時,只能輸入數字

2. 方法:

        private void textBox_KeyPress(object sender, KeyPressEventArgs e)
        {
            if ((Char.IsDigit(e.KeyChar) || e.KeyChar == (Char)13 || e.KeyChar == (Char)46))
            {
                e.Handled = false;
            }
            else
            {
                e.Handled = true;
            }
        }
  
 3. 備註:

       8 為Enter 
      13為BackSpace
      46為 . (小數點)

  4.延伸閱讀:

     http://www.dotblogs.com.tw/chou/archive/2009/07/31/9774.aspx?fid=9649
   
     http://msdn.microsoft.com/zh-tw/library/60ecse8t%28v=vs.80%29.aspx