![]() |
Вопросы по C#
Предлагаю в этой теме обсуждать проблемы при программировании на C#
Первый вопрос. Как изменить изображение на pictureBox? Например, сделать его чёрно-белым. Я думаю, для этого надо получить image с pictureBox, но не знаю как это сделать. |
Ответ: Вопросы по C#
Получить изображение просто. Вот обработать его - намного сложнее.
(Если, конечно это не банальное stretch|expand) Тут без математики не обойтись. Есть книги по обработке изображений. Я как раз собираюсь дописать в свой фото-сайт обработку (маленькие ч/б иконки в списке фоток, вместо цветных монстров). Отпишусь, как сделаю |
Ответ: Вопросы по C#
Цитата:
Цитата:
|
Ответ: Вопросы по C#
А в чём проблема? Так и получаешь pictureBox.Image
|
Ответ: Вопросы по C#
Цитата:
|
Ответ: Вопросы по C#
pluton, ты ColorMatrix использовал в своём решении? Потому что с этим классом легко изображением манипулировать.
|
Ответ: Вопросы по C#
Как на С# сделать чтоб появлялось всплывающее окошечко на подобие пришедшего сообщения в QIPe?
|
Ответ: Вопросы по C#
Цитата:
тебе надо сделать форму, у которой: TopMost = true; ShowInTaskbar = false; FormBorderStyle = none; при создании формы устанавливаешь координаты и размер дальше при событии Paint на форме рисуешь чё ты хош зы. будут вопросы - спрашивай |
Ответ: Вопросы по C#
LeGront, а в обработчике таймерового события Tick можешь изменять координаты формы или её прозрачность для получения эффектов "всплывания/выезжания" или "материализации" соответственно.
|
Ответ: Вопросы по C#
Где найти такой хороший учебник-справочник, в электронном виде поделитесь.
|
Ответ: Вопросы по C#
Цитата:
|
Ответ: Вопросы по C#
Цитата:
|
Ответ: Вопросы по C#
Подскажите, ктонить знает какой нибудь удобный способ править RTF разметку объектами С#. Проблема в следующем: ну всем хорош RichTextBox одно плохо - нет методов рамку вокруг абзаца нарисовать. Можно конечно вручную вставлять RTF разметку, но для этого ее надо по порядочному отпарсить.
|
Ответ: Вопросы по C#
Отвечу asn_asn, что хорошие книги по С# можно найти на сайте
www.natahaus.ru, только нужно на нем зарегистрироваться и тогда поиск на ключевое слова "C#" в твоем распоряжении. |
Ответ: Вопросы по C#
Как сделать:
на форме в C# пишу код, который отображает прямоугольник прямо на самой форме. Надо сделать, чтобы с помощью вертикальной прокрутки (или горизонтальной) позиция нарисованного прямоугольника менялась... Т.е. сделать эффект, что будто бы перемещаем рабочую область и нарисованный прямоугольник уходит за пределы формы...какие это события? очень нужно... P.S: В C# можно объявлять русские пременные/функции (процедуры) и классы :) |
Ответ: Вопросы по C#
EvgeniuXP2, подскажи где достать полосу прокрутки?
а то я не нашёл. контрола такого нету. в свойствах формы вроде тоже нельзя включить скроллбары |
Ответ: Вопросы по C#
Свойство у формы или контрола Panel - AutoScroll
Добавлено через 5 минут Цитата:
|
Ответ: Вопросы по C#
EvgeniuXP2, для рисования используется событие Paint.
при прокрутке - событие Scroll т.е. код приблизительно такой: Код:
int val; // значение сдвига скроллбара |
Ответ: Вопросы по C#
Цитата:
Добавлено через 6 минут Еще вопрос, в книге по C# не нашел, есть только приблизительные наводки :( Я нарисовал на форме прямоугольник, нужно в итоге сохранить в jpg/bmp формат. Графический файл загружать и сохранять с другим форматом нашел, а вот преобразовать из векторного в графический нет :( раньше функция была BitBlt (в делфи тоже есть), а тут вроде как заменили на metafile... но пример из Visual Studio 7.0 не пошел в Visual Studio 8.0 (оно и понятно, там вообще по другому)... в 8.0 примера не нашел :(, очень нужно... Добавлено через 4 дня Вопрос снимаю, чертыре дня убил, но нашел как сделать :) Добавлено через 11 минут пишу на память, так что извиняюсь за ошибки: Цитата:
this.ScrollMinimize. задать размеры например, 1000x1000. а также указать размер самой формы: this.Width, this.Height. и на форме появятся скроллы. |
Ответ: Вопросы по C#
в c++ можно было так задавать макросы:
Код:
#define func(a, b) (a >= b)Цитата:
Код:
#define pi 3.14Код:
const double pi = 3.14; |
Ответ: Вопросы по C#
Цитата:
|
Ответ: Вопросы по C#
pluton, С# - это ведь нормальный, современный язык с очень продуманной безопасностью. Поэтому на нем нельзя писать отвратительный небезопасный код, который даже на С++ лет эдак nнадцать уже никто не пишет :)
|
Ответ: Вопросы по C#
Цитата:
и всё таки как сделать макросы? это же безопасный код? |
Ответ: Вопросы по C#
Цитата:
Добавлено через 4 минуты Цитата:
boolean m; If(m=1) компилятор не воспримет за ошибку :) |
Ответ: Вопросы по C#
Еще вопрос, как такое сделать?:
Щелкнул левой кнопкой мышки на форме - появился прямоугольник. Щелкнул два раза внутрь прямоугольника, можно корректировать текст. Когда набираю текст, нижняя часть прямоугольника автоматически опускается ниже, если текст стал располагаться в нескольких строках... Интересует текстовое поле, каким объектом его формировать, чтобы узнавать длину, которая не должна превышать ширины прямоугольника.... |
Ответ: Вопросы по C#
Цитата:
код Цитата:
|
Ответ: Вопросы по C#
незнаю, может я неправильно мыслю :)
в Word-е можно нарисовать прямоугльник - через фигуры, затем в этот прямоугольник можно добавить текст. Если текст состоит из нескольких строк и эти строки превышают высоту прямоугольника, то в Word-е проблема решена очень просто - не отображать этот текст, пока пользователь сам не изменит высоту прямоугольника.... в моем случае такой номер не пройдет, мне нужно: создать прямоугольник по умолчанию, в котором можно ввести одну строку, если пользователь набирает и переходит на вторую строку, нижняя граница прямоугольника (его отображаемый контур) смещается ниже и таким образом пользователь может ввести вторую строку и т.д. реализация: можно сделать проще, установить моноширный шрифт и отслеживать сколько символов в одной строке и прямоугольник пересоздавать... а если не моноширный шрифт то как тогда проделать? т.е. нужно постоянно узнавать либо длину строки (при редактировании) хотя бы в пикселях, чтобы отследить превышает ли она ширину прямоугольника и высоту прямоугольника менять автоматически, либо отслеживать пересекаются ли нарисованный прямоугольник и прямоугольник фонта, если да, то менять высоту нарисованного прямоугольника. Только я таких методов незнаю:-1) узнать длину строки в пикселях 2) когда в DrawString отправляю текст и прямоугольник, то я незнаю, сколько же текст на самом деле займет строк, и какая должна быть действительна высота прямоугольника, т.к. текст может полностью не влезть и в конце он может окзаться обрезанным, а мне текст нужно вывести в любом случае полный изменив высоту прямоугольника... |
Ответ: Вопросы по C#
Цитата:
Может не совсем по канонам ООП, зато работает. Я подобную фичу использую для вывода на печать. |
Ответ: Вопросы по C#
Цитата:
RichTextBox rtb = new RichTextBox(); rtb.Parent = this; rtb.Location = new Point(Font.Height, Font.Height); rtb.Size = new Size(100, 20); rtb.Anchor |= AnchorStyles.Right; rtb.Text = "Здесь мой текст, сколько строк он займет?"; и как теперь узнать программно, сколько строк в RichTextBox-е этот текст занял? (свойство Lines возвращает string [1]). |
Ответ: Вопросы по C#
Во первых, Location и Anchor тебе не нужны, поскольку текстбокс не выводится на экран (ну да это мелочи).
Во вторых, хорошо бы еще задать шрифт, а то он по умолчанию кажется 8-й ставит и даже очень длинные фразы может уместить в одну строку. В третих, Lines возвращает массив строк, на которые текстбокс порезал твой текст. Т.е. количество строк узнается "rtb.Lines.Length". Т.к. фраза короткая, то он уместил ее в одну строку, что и вернул. В целях отладки можно этот текстбокс все-таки гденить вывести на экран, потом в окончательном варианте скроеш. |
| Текущее время: 18:31. Часовой пояс GMT +3. |
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2026, vBulletin Solutions, Inc. Перевод: zCarot
Copyright ©2004 - 2026 NoWa.cc