读书人

c# winform 画图,该怎么处理

发布时间: 2012-08-02 11:35:25 作者: rapoo

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)


{
e.Graphics.DrawRectange(Colors.Blue,0,0,100,100); //draw a blue rect
e.Graphics.DrawString("4010", "宋体" .......
}
[解决办法]
补充一下:
那些小的图标可以调用DrawIcon来绘制
e.Graphics.DrawIcon.

其他的你只需要进行条件控制确定相应的颜色、坐标就行了。

如果考虑到效率,可以启用双缓冲。

SetStyle(ControlStyles.DoubleBuffer).
[解决办法]
看了下回复,顶16楼。
[解决办法]
显示在下面的先画

[解决办法]
这个可以用动态添加按钮,给按钮设置背景图片,并在上面写字来实现的啊,this.Controls.Add(YourButton),然后再在代码里面设置它的位置就可以了
[解决办法]
如梦的方法可行

读书人网 >C#

热点推荐