Все знают cc как добавить кнопки в C# форму, особенно в Visual Studio это очень легко. Но как добавить в форму кнопка изображения. Сегодня будем создать именно такую приложению.
Картинки программным образом можно получать из Resources таким образом
Image Check = Resources.check;
Image Cross = Resources.cross;
Если теперь в конструкторе добавить эти строки
pictureBox1.Image = Check;
pictureBox2.Image = Cross;
то при запуске приложении, изображении будут появляться на форму
Когда курсор мыши находится на изображении, мы хотим чтобы вид курсора изменился на рука. Для этого в свойстах двух PictureBox для Cursor выбираем Hand.
Теперь создаем событии для клика, где например должен выводится какое то сообщения
private void pictureBox1_Click(object sender, EventArgs e)
{
MessageBox.Show("Check Button is Clicked!");
}
private void pictureBox2_Click(object sender, EventArgs e)
{
MessageBox.Show("Cross Button is Clicked!");
}
Давайте теперь сделаем немного анимацию. Мы например хотим, чтобы когда курсор мыши находится на PictureBox размер изображении изменился. Для этого для каждого изображении создаем события MouseHover и MouseLeave. То что будет с MouseLeave думаю всем понятно, изображения будет принимать свой прежний размер.
private void pictureBox1_MouseLeave(object sender, EventArgs e)
{
pictureBox1.Image = Check;
}
private void pictureBox2_MouseLeave(object sender, EventArgs e)
{
pictureBox2.Image = Cross;
}
А вот с MouseHover мы должны изменить размер изображении допустим на 20%. Вот две события для изменения размеров изображений
private void pictureBox1_MouseHover(object sender, EventArgs e)
{
int Check_Width = Check.Width + ((Check.Width * 20) / 100);
int Check_Height = Check.Height + ((Check.Height * 20) / 100);
Bitmap Check_1 = new Bitmap(Check_Width, Check_Height);
Graphics g = Graphics.FromImage(Check_1);
g.DrawImage(Check, new Rectangle(Point.Empty, Check_1.Size));
pictureBox1.Image = Check_1;
}
private void pictureBox2_MouseHover(object sender, EventArgs e)
{
int Cross_Width = Cross.Width + ((Cross.Width * 20) / 100);
int Cross_Height = Cross.Height + ((Cross.Height * 20) / 100);
Bitmap Cross_1 = new Bitmap(Cross_Width, Cross_Height);
Graphics g = Graphics.FromImage(Cross_1);
g.DrawImage(Cross, new Rectangle(Point.Empty, Cross_1.Size));
pictureBox2.Image = Cross_1;
}
Вот польный код программы
using Image_as_Button.Properties;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Image_as_Button
{
public partial class Form1 : Form
{
Image Check = Resources.check;
Image Cross = Resources.cross;
public Form1()
{
InitializeComponent();
pictureBox1.Image = Check;
pictureBox2.Image = Cross;
}
private void pictureBox1_Click(object sender, EventArgs e)
{
MessageBox.Show("Check Button is Clicked!");
}
private void pictureBox2_Click(object sender, EventArgs e)
{
MessageBox.Show("Cross Button is Clicked!");
}
private void pictureBox1_MouseHover(object sender, EventArgs e)
{
int Check_Width = Check.Width + ((Check.Width * 20) / 100);
int Check_Height = Check.Height + ((Check.Height * 20) / 100);
Bitmap Check_1 = new Bitmap(Check_Width, Check_Height);
Graphics g = Graphics.FromImage(Check_1);
g.DrawImage(Check, new Rectangle(Point.Empty, Check_1.Size));
pictureBox1.Image = Check_1;
}
private void pictureBox2_MouseHover(object sender, EventArgs e)
{
int Cross_Width = Cross.Width + ((Cross.Width * 20) / 100);
int Cross_Height = Cross.Height + ((Cross.Height * 20) / 100);
Bitmap Cross_1 = new Bitmap(Cross_Width, Cross_Height);
Graphics g = Graphics.FromImage(Cross_1);
g.DrawImage(Cross, new Rectangle(Point.Empty, Cross_1.Size));
pictureBox2.Image = Cross_1;
}
private void pictureBox1_MouseLeave(object sender, EventArgs e)
{
pictureBox1.Image = Check;
}
private void pictureBox2_MouseLeave(object sender, EventArgs e)
{
pictureBox2.Image = Cross;
}
}
}
Создаем новый Windows.Forms приложения. Добавим там две PictureBox и даем их размер 40x40.
Картинки программным образом можно получать из Resources таким образом
Image Check = Resources.check;
Image Cross = Resources.cross;
Если теперь в конструкторе добавить эти строки
pictureBox1.Image = Check;
pictureBox2.Image = Cross;
то при запуске приложении, изображении будут появляться на форму
Когда курсор мыши находится на изображении, мы хотим чтобы вид курсора изменился на рука. Для этого в свойстах двух PictureBox для Cursor выбираем Hand.
Теперь создаем событии для клика, где например должен выводится какое то сообщения
private void pictureBox1_Click(object sender, EventArgs e)
{
MessageBox.Show("Check Button is Clicked!");
}
private void pictureBox2_Click(object sender, EventArgs e)
{
MessageBox.Show("Cross Button is Clicked!");
}
Давайте теперь сделаем немного анимацию. Мы например хотим, чтобы когда курсор мыши находится на PictureBox размер изображении изменился. Для этого для каждого изображении создаем события MouseHover и MouseLeave. То что будет с MouseLeave думаю всем понятно, изображения будет принимать свой прежний размер.
private void pictureBox1_MouseLeave(object sender, EventArgs e)
{
pictureBox1.Image = Check;
}
private void pictureBox2_MouseLeave(object sender, EventArgs e)
{
pictureBox2.Image = Cross;
}
А вот с MouseHover мы должны изменить размер изображении допустим на 20%. Вот две события для изменения размеров изображений
private void pictureBox1_MouseHover(object sender, EventArgs e)
{
int Check_Width = Check.Width + ((Check.Width * 20) / 100);
int Check_Height = Check.Height + ((Check.Height * 20) / 100);
Bitmap Check_1 = new Bitmap(Check_Width, Check_Height);
Graphics g = Graphics.FromImage(Check_1);
g.DrawImage(Check, new Rectangle(Point.Empty, Check_1.Size));
pictureBox1.Image = Check_1;
}
private void pictureBox2_MouseHover(object sender, EventArgs e)
{
int Cross_Width = Cross.Width + ((Cross.Width * 20) / 100);
int Cross_Height = Cross.Height + ((Cross.Height * 20) / 100);
Bitmap Cross_1 = new Bitmap(Cross_Width, Cross_Height);
Graphics g = Graphics.FromImage(Cross_1);
g.DrawImage(Cross, new Rectangle(Point.Empty, Cross_1.Size));
pictureBox2.Image = Cross_1;
}
Вот польный код программы
using Image_as_Button.Properties;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Image_as_Button
{
public partial class Form1 : Form
{
Image Check = Resources.check;
Image Cross = Resources.cross;
public Form1()
{
InitializeComponent();
pictureBox1.Image = Check;
pictureBox2.Image = Cross;
}
private void pictureBox1_Click(object sender, EventArgs e)
{
MessageBox.Show("Check Button is Clicked!");
}
private void pictureBox2_Click(object sender, EventArgs e)
{
MessageBox.Show("Cross Button is Clicked!");
}
private void pictureBox1_MouseHover(object sender, EventArgs e)
{
int Check_Width = Check.Width + ((Check.Width * 20) / 100);
int Check_Height = Check.Height + ((Check.Height * 20) / 100);
Bitmap Check_1 = new Bitmap(Check_Width, Check_Height);
Graphics g = Graphics.FromImage(Check_1);
g.DrawImage(Check, new Rectangle(Point.Empty, Check_1.Size));
pictureBox1.Image = Check_1;
}
private void pictureBox2_MouseHover(object sender, EventArgs e)
{
int Cross_Width = Cross.Width + ((Cross.Width * 20) / 100);
int Cross_Height = Cross.Height + ((Cross.Height * 20) / 100);
Bitmap Cross_1 = new Bitmap(Cross_Width, Cross_Height);
Graphics g = Graphics.FromImage(Cross_1);
g.DrawImage(Cross, new Rectangle(Point.Empty, Cross_1.Size));
pictureBox2.Image = Cross_1;
}
private void pictureBox1_MouseLeave(object sender, EventArgs e)
{
pictureBox1.Image = Check;
}
private void pictureBox2_MouseLeave(object sender, EventArgs e)
{
pictureBox2.Image = Cross;
}
}
}