bạn phải xử lý drawing trong sự kiện KeyDown chứ nhỉ? (khi key là F5)
tôi định sau khi F5 thì form được form và có luôn đường thẳng trên picturebox
Graphics g;
private void Form1_Load(object sender, EventArgs e)
{
g = pictureBox1.CreateGraphics();
g.DrawLine(Pens.Red, 20, 30, 56, 76);
}
viết như thế này thì sau khi form hiện lên thì chẳng có đường thẳng nào cả...
ai biết xin giúp với..!!
bạn phải xử lý drawing trong sự kiện KeyDown chứ nhỉ? (khi key là F5)
Ý của bạn ấy là F5 để chạy chế độ debug chương trình của Visual
Bạn gọi vậy k được rồi. Phải gọi trong sự kiên Paint của Pixturebox
Visual C# Code:
Hôm nào em ra đi anh thẫn thờ trên phố nhỏ
Mây chiều giăng lối đi em đứng nhìn mắt bơ vơ
Tóc xõa từ bờ vai hoen mi sầu rưng rưng lệ
Cho tròn tuổi tình yêu lúc ban đầu xa cách nhau
bạn thử cho mã lệnh trên vào sự kiện Form1_Shown của form thay vì cho vào Form1_Load xem sao.
bạn thử đoạn code này nhé :
Code:private void Form1_Load(object sender, EventArgs e) { Graphics g= Graphics.FromImage(pictureBox1.Image); g.DrawLine(Pens.Red, 20, 30, 56, 76); }
Blog chia sẻ kinh nghiệm IT : http://4shareinfo.wordpress.com/
Vẽ trong form_paint ấy
bạn thử dùng Protected Override OnPaint(), trong đó vẽ 1 đường thẳng . Khi load form thi thêm method Invalidate() để yêu cầu vẽ lại Form.
Hoặc bạn tạo 1 Bitmap, trên đó vẽ 1 đường thẳng và set Image của picturebox là Bitmap bạn mới tạo ra
Bạn sữ dụng đoạn code dưới.
private void Form1_Paint(object sender, PaintEventArgs e)
{
e.Graphics.Clear(this.BackColor);
e.Graphics.DrawLine(Pens.Blue, 0, 0,
this.ClientSize.Width, this.ClientSize.Height);
e.Graphics.DrawLine(Pens.Blue,
this.ClientSize.Width, 0, 0, this.ClientSize.Height);
}
Thêm đoạn này để khi resize form nó vẽ lại
private void Form1_Load(object sender, EventArgs e)
{
this.SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.ResizeRedraw,
true);
}
Kẻ nào bắt buộc nghe ai.
Luôn luôn vẫn giữ ý sai của mình.