это часть кода:
pictureBox.MouseEnter += (s, e) =>
{
pictureBox.BackColor = Color.FromArgb(50, Color.Black);
pictureBox.Controls.Add(new Label
{
Text = tooltipText,
ForeColor = Color.White,
BackColor = Color.FromArgb(200, 0, 0, 0),
AutoSize = false,
TextAlign = ContentAlignment.MiddleCenter,
Dock = DockStyle.Fill,
Font = new Font("Arial", 10, FontStyle.Bold)
});
};
pictureBox.MouseLeave += (s, e) =>
{
pictureBox.BackColor = Color.Transparent;
pictureBox.Controls.Clear();
};
проблема в том, что когда я перемещаю курсор мыши внутри области PictureBox, а затем, когда я перемещаю мышь внутри области PictureBox, не оставляя только внутри, иногда это вызывает код события MouseLeave.< /p>
полный код метода:
private void ArrangeImagesInCollage(string[] filePaths)
{
int imageCount = filePaths.Length;
int margin = 5;
int columns = (int)Math.Ceiling(Math.Sqrt(imageCount));
int rows = (int)Math.Ceiling((double)imageCount / columns);
int panelWidth = panelCollage.Width - (columns + 1) * margin;
int panelHeight = panelCollage.Height - (rows + 1) * margin;
int imageWidth = panelWidth / columns;
int imageHeight = panelHeight / rows;
panelCollage.Controls.Clear();
for (int i = 0; i < imageCount; i++)
{
string filePath = filePaths;
Image img = Image.FromFile(filePath);
PictureBox pictureBox = new PictureBox
{
Image = img,
SizeMode = PictureBoxSizeMode.StretchImage,
BorderStyle = BorderStyle.FixedSingle,
Size = new Size(imageWidth, imageHeight),
Padding = new Padding(3)
};
int row = i / columns;
int col = i % columns;
int x = col * (imageWidth + margin) + margin;
int y = row * (imageHeight + margin) + margin;
pictureBox.Location = new Point(x, y);
ToolTip toolTip = new ToolTip();
FileInfo fileInfo = new FileInfo(filePath);
string tooltipText = $"Name: {fileInfo.Name}\nSize: {fileInfo.Length / 1024} KB\nDimensions: {img.Width}x{img.Height}";
toolTip.SetToolTip(pictureBox, tooltipText);
pictureBox.MouseEnter += (s, e) =>
{
pictureBox.BackColor = Color.FromArgb(50, Color.Black);
pictureBox.Controls.Add(new Label
{
Text = tooltipText,
ForeColor = Color.White,
BackColor = Color.FromArgb(200, 0, 0, 0),
AutoSize = false,
TextAlign = ContentAlignment.MiddleCenter,
Dock = DockStyle.Fill,
Font = new Font("Arial", 10, FontStyle.Bold)
});
};
pictureBox.MouseLeave += (s, e) =>
{
pictureBox.BackColor = Color.Transparent;
pictureBox.Controls.Clear();
};
panelCollage.Controls.Add(pictureBox);
}
}
Подробнее здесь: https://stackoverflow.com/questions/791 ... -inside-th
Почему событие MouseLeave срабатывает, даже если курсор мыши все еще находится внутри элемента управления PictureBox? ⇐ C#
Место общения программистов C#
1731116982
Anonymous
это часть кода:
pictureBox.MouseEnter += (s, e) =>
{
pictureBox.BackColor = Color.FromArgb(50, Color.Black);
pictureBox.Controls.Add(new Label
{
Text = tooltipText,
ForeColor = Color.White,
BackColor = Color.FromArgb(200, 0, 0, 0),
AutoSize = false,
TextAlign = ContentAlignment.MiddleCenter,
Dock = DockStyle.Fill,
Font = new Font("Arial", 10, FontStyle.Bold)
});
};
pictureBox.MouseLeave += (s, e) =>
{
pictureBox.BackColor = Color.Transparent;
pictureBox.Controls.Clear();
};
проблема в том, что когда я перемещаю курсор мыши внутри области PictureBox, а затем, когда я перемещаю мышь внутри области PictureBox, не оставляя только внутри, иногда это вызывает код события MouseLeave.< /p>
полный код метода:
private void ArrangeImagesInCollage(string[] filePaths)
{
int imageCount = filePaths.Length;
int margin = 5;
int columns = (int)Math.Ceiling(Math.Sqrt(imageCount));
int rows = (int)Math.Ceiling((double)imageCount / columns);
int panelWidth = panelCollage.Width - (columns + 1) * margin;
int panelHeight = panelCollage.Height - (rows + 1) * margin;
int imageWidth = panelWidth / columns;
int imageHeight = panelHeight / rows;
panelCollage.Controls.Clear();
for (int i = 0; i < imageCount; i++)
{
string filePath = filePaths[i];
Image img = Image.FromFile(filePath);
PictureBox pictureBox = new PictureBox
{
Image = img,
SizeMode = PictureBoxSizeMode.StretchImage,
BorderStyle = BorderStyle.FixedSingle,
Size = new Size(imageWidth, imageHeight),
Padding = new Padding(3)
};
int row = i / columns;
int col = i % columns;
int x = col * (imageWidth + margin) + margin;
int y = row * (imageHeight + margin) + margin;
pictureBox.Location = new Point(x, y);
ToolTip toolTip = new ToolTip();
FileInfo fileInfo = new FileInfo(filePath);
string tooltipText = $"Name: {fileInfo.Name}\nSize: {fileInfo.Length / 1024} KB\nDimensions: {img.Width}x{img.Height}";
toolTip.SetToolTip(pictureBox, tooltipText);
pictureBox.MouseEnter += (s, e) =>
{
pictureBox.BackColor = Color.FromArgb(50, Color.Black);
pictureBox.Controls.Add(new Label
{
Text = tooltipText,
ForeColor = Color.White,
BackColor = Color.FromArgb(200, 0, 0, 0),
AutoSize = false,
TextAlign = ContentAlignment.MiddleCenter,
Dock = DockStyle.Fill,
Font = new Font("Arial", 10, FontStyle.Bold)
});
};
pictureBox.MouseLeave += (s, e) =>
{
pictureBox.BackColor = Color.Transparent;
pictureBox.Controls.Clear();
};
panelCollage.Controls.Add(pictureBox);
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79171787/why-the-mouseleave-event-get-trigger-even-if-the-mouse-cursor-is-still-inside-th[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия