Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: VB

Программирование VB

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Лишние эффекты в PictureBox (VS5)
 
 автор: Lukas   (24.04.2009 в 11:48)   личное сообщение
5 Кб.
 
 

Растягиваю рисунок по горизонтали (SizeMode=StretchImage), с правой стороны получаю не заказанный спецэффект.
Чем от него избавится?
Скрин GIF.
Спасибо.
Правка: VS2005

  Ответить  
 
 автор: FORMAT   (24.04.2009 в 12:46)   личное сообщение
 
 

Сбрось нормальный gif, а не то, что выдает тебе на экран. У мну твой рисунок отображается без искажений при растяжке на всю страницу.

  Ответить  
 
 автор: Lukas   (24.04.2009 в 12:47)   личное сообщение
1 Кб.
 
 

Лови:

  Ответить  
 
 автор: FORMAT   (24.04.2009 в 13:02)   личное сообщение
 
 

Блин, твой рисунок размыт с левого края. Естественно, будет такой эффект.

Добавлено: размыт с правого края. Фсе, хватить бухать, а право и лево уже путаю

ТЯП!!!

  Ответить  
 
 автор: Lukas   (24.04.2009 в 13:18)   личное сообщение
 
 

Неа, не размыт. В Access то все ОК с тем-же рисунком. В студии доп эффект срабатывает, а вот как его погасить ...
Бросай пить, семья из дома выгонит.

  Ответить  
 
 автор: FORMAT   (24.04.2009 в 13:37)   личное сообщение
10 Кб.
 
 

А я говорю, что размыт. Вот твой рисунок в увеличенном виде

  Ответить  
 
 автор: Lukas   (24.04.2009 в 13:45)   личное сообщение
14 Кб.
 
 

А я говорю не размыт. Вот он в аксе:
Ты BMP-шку в Paint-е масштабируй по мах, там все чистенько.

А, так ты встроенной "порнушкой" BMP-шку смотришь, так там и слоника размоет... при увеличении.

  Ответить  
 
 автор: Lukas   (24.04.2009 в 13:43)   личное сообщение
 
 

А вот "исчо" какой вопрос возник.
Как бы исхитрится на загрузке формы добыть рисунок из ImageList и затолкать его в PictureBox?
Привык я как-то, все свое с собой носить...

  Ответить  
 
 автор: час   (24.04.2009 в 14:12)   личное сообщение
 
 

Слевой стороны не размыт, потому как край формы его обрезает - как Вы считаете?
С правой стороны края формы - нет - может пододвинуть край?

  Ответить  
 
 автор: FORMAT   (24.04.2009 в 14:23)   личное сообщение
 
 

Me.PictureBox1.Image = Me.ImageList1.Images(Индекс твоей картинки в коллекции ImageList)

  Ответить  
 
 автор: Lukas   (24.04.2009 в 14:33)   личное сообщение
12 Кб.
 
 

Ну это мне первое, что в голову пришло. Однако ругается в аккурат на эту строку..., хотя и показывает.

  Ответить  
 
 автор: Lukas   (24.04.2009 в 14:42)   личное сообщение
 
 

А блин, похоже я не в ту процедуру ее запихал.
Переместил в Public Sub New(), вроде перестала ругаться.

Спасибочки.

  Ответить  
 
 автор: FORMAT   (24.04.2009 в 14:58)   личное сообщение
 
 

Me.PictureBox1.Image = Me.ImageList1.Images("Lukas1.bmp")
У мну не ругается ни в первом случае, ни в этом

  Ответить  
 
 автор: FORMAT   (24.04.2009 в 15:06)   личное сообщение
0 Кб.
 
 

Lukas, у тебя кривая картинко. Вот растянул на всю форму похожий катринк - никаких искажений

  Ответить  
 
 автор: Lukas   (24.04.2009 в 15:22)   личное сообщение
5 Кб.
 
 

Ну вот с другими рисунками:

Ты ширину рисунка сколько пикселей делал?

  Ответить  
 
 автор: Lukas   (24.04.2009 в 15:47)   личное сообщение
 
 

Хочешь посмеяться?

Вот так нормально размножается:
Me.ImgTop.BackgroundImage = Form1.ImageList1.Images(0)
Image не задан.


Добавлено.
А что прямоугольничков и линий в наборе Toolbox нет? Или плохо ищу?

  Ответить  
 
 автор: FORMAT   (24.04.2009 в 16:15)   личное сообщение
 
 


Me.ImgTop.BackgroundImage = Form1.ImageList1.Images(0)
Image не задан.



Что значит Image не задан? Ты ж задал его бэкграунд в виде картинки

  Ответить  
 
 автор: Lukas   (24.04.2009 в 16:42)   личное сообщение
 
 

Имелось в виду, что не Image-ем, а BackgroundImage-ем.

  Ответить  
 
 автор: FORMAT   (24.04.2009 в 16:55)   личное сообщение
 
 


Имелось в виду, что не Image-ем, а BackgroundImage-ем.


Я бы аккуратнее пользовался бэкграундами - там есть свои нюансы

  Ответить  
 
 автор: Lukas   (24.04.2009 в 17:04)   личное сообщение
 
 

Ну, граблей впереди еще много раскидано ...
Но ведь пока по лбу не получишь ...

  Ответить  
 
 автор: FORMAT   (24.04.2009 в 16:21)   личное сообщение
 
 


А что прямоугольничков и линий в наборе Toolbox нет? Или плохо ищу?


Вааще то есть такие элементы, как Picturebox с которым ты в настоящий момент имеешь сексуальные отношения - его можно импользовать для создания линий.
В качестве прямоугольников можно использовать Panel - регулируя его borderstyle и borderwidth
Можно так же поизвращаться со сплит-контейнером

  Ответить  
 
 автор: Lukas   (24.04.2009 в 16:44)   личное сообщение
 
 

Да уж, извращаться я люблю. Бум пробовать.

  Ответить  
 
 автор: FORMAT   (24.04.2009 в 16:13)   личное сообщение
 
 


Ты ширину рисунка сколько пикселей делал?



Me.PictureBox2.Width = Form.ActiveForm.Width - т.е. на всю ширину формы

  Ответить  
 
 автор: Lukas   (24.04.2009 в 16:40)   личное сообщение
 
 

Я имел в виду ширину оригинального рисунка, а не его растянутость по форме.
А я просто Dock-ом PictureBox к верху или низу привязываю. Мне в аккурат так и надо. Его размеры уже среда сама пасет. Ленивец, однако.

  Ответить  
 
 автор: Lukas   (24.04.2009 в 17:02)   личное сообщение
 
 

Опять напасть. Не могу Label-у прозрачность дать. Она поверх рисунка лежит.

  Ответить  
 
 автор: FORMAT   (24.04.2009 в 17:16)   личное сообщение
 
 

ну ты даешь... Label.Visible=false

  Ответить  
 
 автор: Lukas   (24.04.2009 в 17:20)   личное сообщение
 
 

Так это она совсем спрячется, а мне текст от нее нужен, а фон прозрачный.
Типа текст поверх моего рисунка.
Пробовал рисунок в лабел пихать, так он там размножаться паразит не хочет.

  Ответить  
 
 автор: FORMAT   (24.04.2009 в 17:52)   личное сообщение
 
 

теперь понятно. Я то работаю в ASP.Net Там таких проблем нет.
А вот в WindowsForms - это проблема известная. Где то видел решение, щас попробую найти

  Ответить  
 
 автор: Lukas   (24.04.2009 в 17:57)   личное сообщение
 
 

СПС.

  Ответить  
 
 автор: FORMAT   (24.04.2009 в 18:00)   личное сообщение
 
 

Найти - не нашел, но придумал как побороть -

Dim lab1 As New Label
Me.PictureBox2.Controls.Add(lab1)
lab1.Visible = True
lab1.Top = 50
lab1.Left = 50
lab1.BackColor = Color.Transparent
lab1.Text = "УРА"
lab1.ForeColor = Color.Black

В этом случае лабел станет на твою картинку PictureBox2 с прозрачным фоном
Регулируя top и left lab1 можно поместить надпись туда, куда нужно

  Ответить  
 
 автор: Lukas   (24.04.2009 в 22:26)   личное сообщение
 
 

Я тут отвлекся немного.
Спасибо, лабел затранспаранилась таки, хоть и через ж.. .

  Ответить  
 
 автор: Lukas   (29.04.2009 в 13:58)   личное сообщение
 
 

Вот "исчо" возник вопрос:
У контролов не могу найти BorderColor, так задумано, или плохо искал?

  Ответить  
 
 автор: FORMAT   (29.04.2009 в 15:25)   личное сообщение
 
 

Смотря у каких контролов?
У баттона - есть (смотри FlatApearance)

  Ответить  
 
 автор: Lukas   (29.04.2009 в 15:35)   личное сообщение
 
 

Искал у Label, PictureBox, Panel. Нужно сделать рамку по периметру формы с FormBorderStyle=None. Причем рамка должна быть поверх других контролов, таких как Label, PictureBox.
А Button для этой задачи наверное не лучшее решение?
Или четыре штуки делать шириной(высотой) в линию?

PS. А от этого я визжал как поросенок:
bitmapTop.RotateFlip(RotateFlipType.Rotate180FlipNone)

  Ответить  
 
 автор: FORMAT   (29.04.2009 в 15:46)   личное сообщение
 
 

А панель чем не устраивает?

  Ответить  
 
 автор: Lukas   (29.04.2009 в 15:55)   личное сообщение
 
 

BorderColor-ом штатным.
+Если остальные контролы кидать сверху панели, придется их сдвигать на ширину линии, чтобы рамка периметра осталась видна.
В Аксе прямоугольник сверху других контролов кинул, задал ему BorderColor, и он живет своей жизнью, никому не мешает.

  Ответить  
 
 автор: FORMAT   (29.04.2009 в 16:22)   личное сообщение
 
 

Сделай 2 панели. Нижней задай нужный бэкколор, а верхнюю - уменьши на величину необходимой границы. И получишь рамку с нужным бордерколором

  Ответить  
 
 автор: Lukas   (29.04.2009 в 16:30)   личное сообщение
 
 

Опробую. Спасибо.
Вот только все остальные контролы придется отодвигать от краев, чтобы не заслоняли бордюрчик.
А нижняя панель наверное не нужна, можно саму форму использовать.

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList