您的位置:首页 > 编程语言 > C#

C#(WinForm)常用小知识点

2010-06-30 00:35 387 查看
一)C#遍历容器中的控件
代码1:
private List<Control> find(Control c, Type t) //c 为容器控件, t 为所选类型
{
List<Control> controls = new List<Control>();
foreach (Control cc in c.Controls)
{
if (cc.GetType() == t)
controls.Add(cc);
}
return controls;
}

代码2:

public List<TextBox> getTextBoxList()
{
try
{
List<TextBox> lstText = new List<TextBox>();
IEnumerator ier = this.panel1.Controls.GetEnumerator();
while (ier.MoveNext())
{
if (ier.Current is TextBox)
{
TextBox a = ier.Current as TextBox;
lstText.Add(a);
}
}
return lstText;
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine(ex.Message);
}
return null;
}

二)c#中如何得到一个文本串的宽度(以像素px为单位)

.NET 的 System.Drawing 空间中,Graphics 对象提供了能达到此目的的方法:MeasureString()
public void PrintOutBox(string printStr,int printWidth,string printAlingment,System.Windows.Forms.PaintEventArgs g)
{
int x1 = CurrentX;
int y1= CurrentY;
int t_space=2;
SizeF sf=g.MeasureString(printStr,printFont());// printFont()为返回类型为Font的方法
Rectangle rec1 = new Rectangle(CurrentX, CurrentY, printWidth, (int)(sf.Height + t_space));
g.DrawRectangle(Pens.Black,rec1);
if (printAlingment == "r" | printAlingment == "R")
{
CurrentX = x1 + printWidth - (int)sf.Width;
CurrentY = y1 + (t_space / 2);
}
g.DrawString(printStr, printFont(), Brushes.Black, CurrentX, CurrentY);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: