![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| chudak |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 85 Регистрация: 2.1.2008 Репутация: нет Всего: нет |
Здравствуйте жители Винграда
никак немогу найти ответ на вопрос: можно ли вообще отчистить битма? мне нужно к ScrollBar прицепить панель с линейкой!!! public void OnPaint(object sender, PaintEventArgs e) { RulerHeight_V = bmp_VH; RulerHeight_H = bmp_HH; DrawRuler_V(g_V); DrawRuler_H(g_H); } где DrawRuler_V это метод, в котором рисуется линейка, но мне нужно что она при перемещении скроллбара как бы перемещалась, тоесть перерисовывалась с новыми стартовыми и конечными делениями!!! private void vScrollBar1_Scroll(object sender, ScrollEventArgs e) { st_V = vScrollBar1.Value; panel4.Invalidate(); } st_V - это стартовое значение, тоесть с какого деления начинать линейку!!! а получается что линейкане перемещается я закрашивается новыми значениями, при каждом движении скроллбара новый слой линеек!!! помогите с ситуацией!!! |
|||
|
||||
| farad |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 199 Регистрация: 1.11.2007 Репутация: 1 Всего: 6 |
Вызывай Invalidate или рисуй линейку средствами класса ControlPaint - инверсными линиями, тогда можно стереть изображение повторной отисовкой его на старом месте
|
|||
|
||||
| chudak |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 85 Регистрация: 2.1.2008 Репутация: нет Всего: нет |
так а толку перерисовавыть если битмап засаряется???? а как вообще правильно это сделать??? ведь должен быть правильный путь??? |
|||
|
||||
| farad |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 199 Регистрация: 1.11.2007 Репутация: 1 Всего: 6 |
||||
|
||||
| chudak |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 85 Регистрация: 2.1.2008 Репутация: нет Всего: нет |
вот весь код который я умудрился состряпать по этой теме!!!
посмотрите, может вообще не стоит над ним сидеть и нужно переделать подругому всё!!! public partial class Form1 : Form { Bitmap bmp_V; Graphics g_V; int bmp_VW=50; int bmp_VH=1000; float st_V = 1; int RulerHeight_V; int Calibration=20; public Form1() { InitializeComponent(); bmp_V = new Bitmap(bmp_VW, bmp_VH); g_V = Graphics.FromImage(bmp_V); this.Paint += new System.Windows.Forms.PaintEventHandler(OnPaint); Invalidate(); } public void OnPaint(object sender, PaintEventArgs e) { RulerHeight_V = 100; DrawRuler_V(g_V); this.panel4.BackgroundImage = bmp_V; } private void DrawRuler_V(Graphics g) { g_V.FillRectangle(Brushes.LightGray , ClientRectangle); float PixelsPerInch = (float)Calibration; int count = 1; for (float i = st_V; i < (float)PixelsPerInch * RulerHeight_V; i++) { if ((i % (PixelsPerInch)) == 0) { g_V.DrawLine(Pens.Black, 0, i, 15, i); g_V.DrawString(count.ToString(), new Font("Arial", 12), Brushes.Black, 15, i, new StringFormat());count++; } else if (((i*2) % ((PixelsPerInch))) == 0) { g_V.DrawLine(Pens.Black, 0, i, 10, i); } } } private void vScrollBar1_Scroll(object sender, ScrollEventArgs e) { st_V = vScrollBar1.Value; panel4.Invalidate(); } } |
|||
|
||||
| farad |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 199 Регистрация: 1.11.2007 Репутация: 1 Всего: 6 |
если ты рисуешь на панели, то логично обрабатывать OnPaint панели, а не формы. Хотя сдается мне сдесь он не нужен. По моему достаточно поместить следующий код в обработчик vScrollBar1_Scroll
|
|||
|
||||
| chudak |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 85 Регистрация: 2.1.2008 Репутация: нет Всего: нет |
хм...
теперь он пишет "Parameter is not valid" на Application.Run(new Form1()); тоже непойму почему!!! |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 8 Всего: 232 |
-------------------- ![]() |
|||
|
||||
| chudak |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 85 Регистрация: 2.1.2008 Репутация: нет Всего: нет |
хорошо!!!!
а почему всёже такая ошибка??? из за чего возникла??? немогу понять!!! вроде всё правильно!!! |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 8 Всего: 232 |
Возможно рушится конструктор Form1.
-------------------- ![]() |
|||
|
||||
| chudak |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 85 Регистрация: 2.1.2008 Репутация: нет Всего: нет |
но это появилось после того как вставил код foradа
но вроде там всё правильно!!! может я чего невижу, я недавно занимаюсь этим языком!!! |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 8 Всего: 232 |
На какой строке упало, очень просто можно выяснить если запустить прогу в режиме отладки (F5), дебаггер покажет на чём именно валится. А там уже разбирайтесь, что именно не так. Может у panel4 нулевой BackgroundImage.
-------------------- ![]() |
|||
|
||||
| chudak |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 85 Регистрация: 2.1.2008 Репутация: нет Всего: нет |
программа запускается, но когда шашечку скролла сдвинеш с места и переместиш форму вываливается ошибка выше описанная!!!
немогу понять почему, но так получалось из за Dispose(); вот тут:
вродебы и надо, но без него нормально работает!!! спасибо что помоги все ))) |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | .NET для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |