Пытаюсь сделать масштабирование picturebox. Честно говоря, в c# я очень слаб. Пробую реализовать масштабирование с помощью умножения высоты и ширины на 1.2, но ожидаемо получаю ошибку:
System.AccessViolationException: "Попытка чтения или записи в защищенную память. Это часто свидетельствует о том, что другая память повреждена."
Скорее всего это как-то связано с тем, что в picturebox я не загружаю изображение, а рисую в нём битмап. Что я делаю не так и как можно исправить?
public partial class Form1 : Form
{
public static Bitmap myBitmap = new Bitmap("img\\BigMap.png");
public Graphics pctMap;
public bool CheckClick = false;
public Form1()
{
InitializeComponent();
AutoSize = true;
pctMap = this.pictureBox1.CreateGraphics();
pictureBox1.Size = ClientSize;
pictureBox1.SizeMode = PictureBoxSizeMode.Zoom;
}
public void pictureBox1_Click(object sender, EventArgs e)
{
//получение цвета нажатого пикселя
MouseEventArgs rato = e as MouseEventArgs;
int x = rato.X * myBitmap.Width / pictureBox1.ClientSize.Width;
int y = rato.Y * myBitmap.Height / pictureBox1.ClientSize.Height;
Color backColor = myBitmap.GetPixel(x, y);
string hex = backColor.R.ToString("X2") + backColor.G.ToString("X2") + backColor.B.ToString("X2");
textBox1.Text = hex.ToString();
Connection mc = new Connection();
//считывание цвета из бд
string query = "SELECT id, NameUK FROM data1 WHERE Color='#" + hex.ToString() + "'";
MySqlCommand command = new MySqlCommand(query, mc.conopen());
//вывод названия страны в textBox2
MySqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
// элементы массива [] - это значения столбцов из запроса SELECT
textBox2.Text = reader[1].ToString();
}
CheckClick = !CheckClick;
if (CheckClick)
{
myBitmap.MakeTransparent(backColor);
pictureBox1.Refresh();
}
else
{
myBitmap = new Bitmap(@"img\BigMap.png");
pictureBox1.Refresh();
}
mc.conclose();
}
//Полноэкранный режим
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyData == Keys.F11)
{
this.WindowState = FormWindowState.Maximized;
this.FormBorderStyle = FormBorderStyle.None;
//Taskbar.Show();
}
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
e.Graphics.DrawImage(myBitmap, 0, 0, pictureBox1.Width, pictureBox1.Height);
}
private void button1_Click(object sender, EventArgs e)
{
pictureBox1.Width *= (int)(pictureBox1.Width * 1.2);
pictureBox1.Height *= (int)(pictureBox1.Height * 1.2);
}
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
После обработки одной из таблиц DGVW1 данные (например) перетекают в DGVW3 и в момент, когда это происходит в ячейку записывается время (код прилагается)Нужно...
При вызову Soldier метод SoldierFindQ() возвращает произведние weight и hight, как и нужно
я сделал голосового ассистента на Python, но решил, перейти на C#По видеоуроку я написал этот код который должен слушать микрофон и писать цифру...
Есть анонимный метод (выполняет через рефлексию методы объекта)