读书人

窗体类的控制TextBox边框有关问题

发布时间: 2012-10-12 10:17:04 作者: rapoo

窗体类的控制TextBox边框问题

C# code
            Graphics g = e.Graphics;            Pen pen = new Pen(Color.Red, 2.0f);            foreach (Control ctr in this.Controls)            {                if (ctr is TextBox)                {                    g.DrawRectangle(pen, new Rectangle(ctr.Location, ctr.Size));                }            }//以上正常,在当前窗体里面的TextBox控件加了边框            foreach (Control ctr1 in this.Controls)            {                TabControl tab = ctr1 as TabControl;                if (tab != null)                {                    foreach (TabPage tp in tab.TabPages)                    {                        foreach (Control c in tp.Controls)                        {                            if (c is TextBox)                            {                               //这里设置边框不行                                g.DrawRectangle(pen, new Rectangle(c.Location, c.Size));                                c.Text = "abc";//这里有效,证明c已经找到了TextBox控件                                 //这里为什么没有BorderStyle这个属性呢?                                // c.BorderStyle = System.Windows.Forms.BorderStyle.None;                            }                        }                    }                }            }            pen.Dispose();        }

//这里设置边框不行
g.DrawRectangle(pen, new Rectangle(c.Location, c.Size));
c.Text = "abc";//这里有效,证明c已经找到了TextBox控件
//这里为什么没有BorderStyle这个属性呢?
// c.BorderStyle = System.Windows.Forms.BorderStyle.None;


[解决办法]
(c as TextBox).BorderStyle
[解决办法]
重绘控件,最好还是自己继承一个重绘的好,以避免添加太多的Paint事件。

C# code
/// <summary>    /// CFlatTextBox:浮动文本框    /// </summary>    [ToolboxBitmap (typeof(FlatTextBox), "FlatBox.bmp")]        public class FlatTextBox : System.Windows.Forms.TextBox 

读书人网 >C#

热点推荐