c# winform 画图
我想知道下列图中的功能是怎么实现的,可以说说大约的过程:
这是一个宾馆管理软件,是用delphi写的。
------解决方案--------------------你确定房间号是画上去的?
------解决方案--------------------房间号和房间名称应该是固定的吧,其他的是改背景图片??
------解决方案--------------------花的时候可以画文字呀
------解决方案--------------------e.Graphics.DrawString();用这个方法可以画字
e.Graphics.DrawImage();用这个方法可以画图
差不多就是这样了,还需要用到什么吗?
------解决方案--------------------自己写个控件, 四个角可以设置对应图片显示, 背景 + 文字设置这个更加不是问题吧
------解决方案--------------------GDI+
去了解下。
------解决方案-------------------- Button dd;
private void button1_Click(object sender, EventArgs e)
{
for (int i = 0; i < 10; i++)
{
dd=new Button();
if (i <= 5)
{
this.dd.Location = new System.Drawing.Point(12, 12 + i * 30);
}
else
{
this.dd.Location = new System.Drawing.Point(96, 12 + (i - 5) * 30);
}
this.dd.Name = "button"+i;
this.dd.Size = new System.Drawing.Size(75, 23);
this.dd.TabIndex = i;
this.dd.Text = "button" + i;
this.dd.UseVisualStyleBackColor = true;
this.Controls.Add(dd);
this.dd.Click += new EventHandler(onMessage_Click);
}
}
public void onMessage_Click(object sender, EventArgs e)
{
Button but = ((Button)sender);
MessageBox.Show(but.Text);
}
这些代码能生成一些按钮, 这种方法也能生成其他的一些控件。(希望对你有用)至于图片怎样放上去,还不清楚。知道了告诉我。。。
------解决方案--------------------up+mark+study
------解决方案--------------------先制作一些带图标的图片,再通过程序在图片上面写上字,这个简单的
------解决方案--------------------用C#比较简单的办法是,定义三个从panel派生的组件,定义几个属性,包括有房间类型,房间号,占用标志,预定标志,等等等等
然后在窗体构建的时候,创建这些组件按顺序排好就OK了啊,那些笑脸什么的,可以在组件里贴图,也可以用GDI+在Panel的重绘事件里画,很简单的。
------解决方案--------------------我以前做软件界面的时候都是自己做好图片然后切图分块放上去。速度和效都还可以了。
------解决方案--------------------自己写的控件吧
------解决方案--------------------图片应该是做好的,下次的改的时候也方便呀~不然每次都要重新改代码?
他只是根据不能状态显示不同的图片而已吧~
------解决方案--------------------
controls["labelname"]找到label,修改背景图片
或
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
BackColor = Color.Transparent;
Graphics g = e.Graphics;
Pen p = new Pen(Color.Black, 1);
Rectangle rect = ClientRectangle;
rect.Location = new Point(2, 2);
rect.Width = ClientRectangle.Width - 4;
rect.Height = ClientRectangle.Height - 4;
}重绘
------解决方案--------------------自定义控件
------解决方案--------------------重载Control(可以是窗体,也可以是自定义控件)的OnPaint事件,计算好相应的坐标,调用GDI+进行绘图就好了。
protected override void OnPaint(PaintEventArgs e)