Пользователей: 0
Гостей: 286
Всего: 286

» Подробно
» Сегодня


Привет, Гость!

Ник


Пароль


Запомнить?




» Добавить в избранное

» Сделать стартовой

Главная
Форум
Обзор игры
Мир Зоны
Файлы
Галерея
Разное






Форумы > Специализированные > Hard & Soft > Программирование на C# (C Sharp)

Страница 1 из 91234 »Последняя
Быстрый переход:


 

Автор Сообщение
Deхter
[70] Миротворец
Онлайн статус=0  Профиль    




Посты: 8626
Откуда: Irkutsk
Занятие: Andrew Karelin
Возраст: 29

06-04-2014
03-03-2010 18:59 GMT3 часа #1184067   Split
Тема по просьбе singapur22

Не нарушаем >>правила<< "SP"


singapur22
[10] Житель
Онлайн статус=0  Профиль    




Посты: 2089
Откуда: Рубцовск
Занятие: Проект "Мобила модмейкера"
Возраст: 44

13-08-2011
03-03-2010 21:22 GMT3 часа #1184073   Split
Уважаемые участники портала.
Приглашаем вас в увлекательное путешествие по миру програмирования на языке С#.

Справка:С# - произносится как Си шарп - объектно-ориентированный язык программирования для платформы .NET
Создан компанией Microsoft для поддержки среды .NET Framework.
Его главным архитектором был ведущий специалист в этой области — Андерс Хейлсберг.
С# -— прямой потомок двух самых успешных в мире компьютерных языков: С и C++.
От С он унаследовал синтаксис, ключевые слова и операторы. Он позволяет постро-
ить и усовершенствовать объектную модель, определенную в C++. Кроме того, С#
близко связан с другим очень успешным языком: Java. Имея общее происхождение,
но различаясь во многих важных аспектах, С# и Java — это скорее "двоюродные братья".
Например, они оба поддерживают программирование распределенных систем и оба используют промежуточный код для достижения переносимости, но различаются
при этом в деталях реализации. Си шарп обладает огромными возможностями благодаря использованию не имеющей себе равных библиотеке классов среды .NET Framework(более 80 простанств имен)
Суммируя вышеизложенное процитируем одного из главных популяризаторов языка Герберта Шмидта
"Это — язык, игнорировать существование которого не может ни один профессиональный программист."

И мы тоже как умные люди не будем его игнорировать.

Итак. В этом топике мы будем учиться программировать на этом интереснейшем языке.
Здесь мы будем выкладывать примеры своих работ и исходники кодов.
Здесь мы будем задавать животрепещущие вопросы.
Здесь мы будем общаться и делиться опытом.

И еще здесь мы не будем флудить и засорять тему не имеющими к ней отношения постами.
Посты флудеров будут удаляться, а сами "чоткие сталкеры" отправляться в бан.
Простые правила соблюдать которые не составит труда:
1. Не флудить и соблюдать корректность в общении.
2. Если можете квалифицированно ответить на заданый вопрос - ответьте.
3. Делитесь тем что наработали и новыми знаниями.

И наконец последнее - рассказывайте о топике всем своим знакомым. Чем больше будет тех, кто желает узнать этот язык, тем лучше будет для всех.

Если вы хотите быть не только обычными пользователем программ, но также их творцами - вам сюда.
Вы удивитесь узнав какие возможности откроет перед вами программирование на этом современном языке: создание собственных интерфейсов программ и рисование, 2D и 3D анимация, работа с аудио и видео контентом и многое многое другое...
Присоединяйтесь.
Удачи всем!

ссылка на статью из википедии
_http://ru.wikipedia.org/wiki/C_Sharp

ссылка на учебники по С#
_http://bookwebmaster.narod.ru/csharp.html

руководство по языку
_http://msdn.microsoft.com/ru-ru/library/67ef8sbd.aspx

Ссыдка на установку платформы "Microsoft Visual C# 2008 экспресс-выпуск"
_http://www.microsoft.com/rus/express/download/

Сообщение было успешно отредактировано singapur22 (03-03-2010 21:22 GMT3 часа, назад)

Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
erlik
[10] Житель
Онлайн статус=0  Профиль    




Посты: 2338
Откуда: Набережные Челны
Занятие: В чем сила, брат? В AutoIT3 и WinAPI.
Возраст: 47

18-03-2015
03-03-2010 19:31 GMT3 часа #1184088   Split
singapur22
А теперь прошу от маэстро пару советов по правильной компиляции кода в Microsoft Visual C#.
Какие пункты в меню Проект->свойства обязательны для заполнения - а какие можно оставить как есть.

Особенно меня интересует такая вещь - как компиляция в проект сторонних ресурсов - где их вписывать и надо ли менять путь до них в коде.


Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
singapur22
[10] Житель
Онлайн статус=0  Профиль    




Посты: 2089
Откуда: Рубцовск
Занятие: Проект "Мобила модмейкера"
Возраст: 44

13-08-2011
03-03-2010 19:58 GMT3 часа #1184112   Split
erlik Попробую пояснить, как запихать внешние ресурсы (изо, медиа, и т.д.) в файл приложения.

Итак. При создании любого проекта в обозревателе решений создаётся папка Properties . Которая содержит все ресурсы добавленные из-вне.
Чтобы добавить в него ресурс, открываем Properties /Resources.resx. В открывшемся редакторе ресурсов выбираем "Добавить ресурс", только нажимаем не на саму кнопку, а на чёрную стрелочку находящуюся рядом с кнопкой, откроется контекстное меню, где выбираем "Добавить существующий файл". Далее без комментариев...

Теперь, разберёмся, как использовать добавленные ресурсы в проект. Ресурсы вызываются из файла Resources.Designer.cs. Вызов производится по пути нахождения данного ресурса в указанном файле. Например:

WindowsFormsApplication1.Properties.Resources.wpn_fn2000;

Где:
WindowsFormsApplication1.Properties --пространство имён
Resources --класс
wpn_fn2000 --функция возвращающая нужный ресурс.


Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
o_OKO
[1] Странник
Онлайн статус=0  Профиль    




Посты: 383
Откуда: Москва
Занятие: HTML, Photoshop
Возраст: 28

10-07-2010
03-03-2010 20:06 GMT3 часа #1184128   Split
У меня несколько "общих вопросов" любого новичка. Или не очень.

Что вообще конкретно разрабатывается на данном языке (если можно, то хотя бы пару простых примеров)?
Можно ли на нём создать простейшее окно в Windows просто для какой-нибудь надписи (ярлык на рабочем столе, жмёшь, вылезает окно с содержимым)?
И в чём отличия между С#, С++, тем же Delphi, или Turbo Pascal? В сложности работы, или в результате? Просто давно хотел начать какой-нибудь язык осваивать, недавно в книжном был, хотел учебник чтоль какой купить, и когда увидел обилие языков программирования прям в ступор встал :)


Множество людей верит в Бога, но не много таких, которым верит Бог. (с)

Michael Jackson 1958-2009 He live in our hearts forever...
userbar
Psychologist
[3] Новобранец
Онлайн статус=0  Профиль    




Посты: 1808
Откуда: Челябинск
Занятие: Стихоплётство, туризм :)
Возраст: 27

12-12-2010
03-03-2010 20:09 GMT3 часа #1184137   Split
o_OKO
Вот цитата singapur'a22 из его журнала:
Цитата
Всё!!! Сотри примеры в MSDN. От простого текстового редактора, до трёхмерной игры ААА класса.

Это ответ на вопрос что можно создать.


И все мы ждем чего-то. Работа - дом - работа ©
erlik
[10] Житель
Онлайн статус=0  Профиль    




Посты: 2338
Откуда: Набережные Челны
Занятие: В чем сила, брат? В AutoIT3 и WinAPI.
Возраст: 47

18-03-2015
03-03-2010 20:17 GMT3 часа #1184148   Split
singapur22

добавил файл - теперь у меня и сама папочка Resources появилась.
но у меня ссылка на сам файл в коде стоит в таком виде
<ImageBrush ImageSource="file:///D:/надпись.jpg" />
это метод вроде из класса Image пространства имен System.Windows.Controls;(или не отсюда - уже не помню)
там как я понял по другому ресурсы добавляются - в общем надо будет заново тему по ресурсам перечитать.

добавлено спустя 2 минут

o_OKO
я бы тебе сейчас готовый примерчик выложил - если бы проект скомпилить правильно мог.
как раз интерфейс делал - и анимации интерфейса.

Сообщение было успешно отредактировано erlik (03-03-2010 20:17 GMT3 часа, назад)

Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
singapur22
[10] Житель
Онлайн статус=0  Профиль    




Посты: 2089
Откуда: Рубцовск
Занятие: Проект "Мобила модмейкера"
Возраст: 44

13-08-2011
03-03-2010 20:39 GMT3 часа #1184155   Split
o_OKO C# является самым молодым и в тоже время самым современным языком, который взял из более старшего поколения самое лучшее. Ну и естественно, имеет и свои наработки. Язык C# имеет довольно широкий круг применения, как уже говорилось от самых простых приложений, типа текстовых редакторов, до наисложнейших проектов, типа игр ААА класса. Прямой пример, движёк XNA созданный на данном языке самими майкрософтовцами.
Вот ещё один пример. Миниприложение созданное мной на третий день изучения языка:
_http://ifolder.ru/16590192

Требуется пакет .NET Framework

Если у тебя на компе его нет, то твой комп таковым не является. В наше время это обязательный компонент современного компьютера.

добавлено спустя 9 минут

erlik С этим я сам както не в ладах. Например, если в .cs для ImageSource можно указать путь Uri, с установкой точки пути, от которой можно плясать,(например относительно папки bin, или от папки проекта), то в .xaml нет такой возможности. Хотя может я и не прав, может и есть, но вот как это сделать, я как не пытался найти, ничего так и не добился.

Сообщение было успешно отредактировано singapur22 (03-03-2010 20:39 GMT3 часа, назад)

Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
erlik
[10] Житель
Онлайн статус=0  Профиль    




Посты: 2338
Откуда: Набережные Челны
Занятие: В чем сила, брат? В AutoIT3 и WinAPI.
Возраст: 47

18-03-2015
03-03-2010 20:39 GMT3 часа #1184190   Split
singapur22
да проблемс - читаю сейчас всю тему "Ресурсы, содержимое и файлы данных для приложений Windows Presentation Foundation " и пока не нашел ни одного понятного примера для моего случая.
А при другом варианте - когда как ты говоришь есть возможность задать путь в cs - придется создавать компонент использующий ресурс уже в программном коде. Попробую перенести элемент из haml в cs.


Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
singapur22
[10] Житель
Онлайн статус=0  Профиль    




Посты: 2089
Откуда: Рубцовск
Занятие: Проект "Мобила модмейкера"
Возраст: 44

13-08-2011
03-03-2010 20:53 GMT3 часа #1184198   Split
erlik Есть ещё такой прикол. Вместо пути к ресурсу на компе, можно указать URL адрес к компоненту находящемуся в инэте. Результат будет ошеломляющий. Естественно требуется подключение к инэту.

Это даёт возможность обмена приложениями не вкладывая в них ресурсы. Ресурцы можно сохранять в инэте ввиде отредактированных файлов. Например изображения можно сохранить на любом хостинге изображений и в приложении указывать уже не сам ресурс, а URL адрес его нахождения на хостинге.


Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
erlik
[10] Житель
Онлайн статус=0  Профиль    




Посты: 2338
Откуда: Набережные Челны
Занятие: В чем сила, брат? В AutoIT3 и WinAPI.
Возраст: 47

18-03-2015
03-03-2010 20:58 GMT3 часа #1184207   Split
singapur22
тоже вариант - может и мне тогда также сделать. Залью картинку на ифолдер - укажу путь.

o_OKO
вот скрин компонентов интерфейса которые можно сделать в C# за несколько дней.
я их еще и анимировал. Но это только при запуске экзешника видно будет.




Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
singapur22
[10] Житель
Онлайн статус=0  Профиль    




Посты: 2089
Откуда: Рубцовск
Занятие: Проект "Мобила модмейкера"
Возраст: 44

13-08-2011
03-03-2010 21:13 GMT3 часа #1184216   Split
erlik На ifolder не получится, там нужно код вводить, что прога сама не сделает. Просто отобрази картинку в инете (как ты делаешь для вставки изо в портале) и скопируй на неё путь через контекстное меню, и вставь путь в приложение.


Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
erlik
[10] Житель
Онлайн статус=0  Профиль    




Посты: 2338
Откуда: Набережные Челны
Занятие: В чем сила, брат? В AutoIT3 и WinAPI.
Возраст: 47

18-03-2015
03-03-2010 21:44 GMT3 часа #1184223   Split
singapur22 это я понял.
я на радикал залил - только картинка в проге не отображается.
пробовал два разных урла вводить.
видимо я че то уже изменил что теперь такой вариант не катит - я в общем в свойствах картинки (в папке ресурсес) указал всегда копировать в выходной каталог. Сам не знаю - а надо ли это вообще

добавлено спустя 14 минут

у меня теперь последний по дате создания экшеник в папке дебаг весит 356 кб - то есть практически столько сколько должен весить с картинкой (картинка 300 кб). может она теперь туда компилируется?
и этот экшеник будет запускаться на другом компе? Или все таки надо компилить по всем пунктам в меню?

Сообщение было успешно отредактировано erlik (03-03-2010 21:44 GMT3 часа, назад)

Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
singapur22
[10] Житель
Онлайн статус=0  Профиль    




Посты: 2089
Откуда: Рубцовск
Занятие: Проект "Мобила модмейкера"
Возраст: 44

13-08-2011
03-03-2010 22:26 GMT3 часа #1184246   Split
erlik Вот пример установки URL вместо Path:

Код:
         
                        <GeometryModel3D.Material>
                                <DiffuseMaterial>
                                    <DiffuseMaterial.Brush>
                                        <ImageBrush>
                                            <ImageBrush.ImageSource>
                           http://stalker-portal.ru/datas/avatars/88212-avatar.gif
                                            </ImageBrush.ImageSource>
                                        </ImageBrush>
                                    </DiffuseMaterial.Brush>
                                </DiffuseMaterial>
                            </GeometryModel3D.Material>


При установке, "добавлять в выходной каталог", каждый добавленный элемент в ресурсы будет дублироваться в папку Resources. Это делается чисто для дополнительного сохранения ресурса (в проге не используется).

В папке Debag, сохраняется тестовый вариант приложения. Чтобы скомпилить релизовый вариант (папка Release), нужно прокликать по такому пути:

Построение/Построить решение

Или через нажатие F6.

Если прога содержит внешние ресурсы, то построенное решение не будет фурычить на других компах, так как указанные пути не будут соответствовать действительности. Для этого производится действие "Опубликовать проект", которое производит создание файла установки приложения. Но если все ресурсы скомпилены в саммом приложении, то опубликование не требуется.


Кстати, мне произвести опубликацию так и не удалось. Выдаёт ошибку:

Ошибка 2 ошибка при подписании: Не удалось подписать bin\Release\app.publish\\setup.exe. SignTool Error: Signtool requires CAPICOM version 2.1.0.1 or higher. Please
copy the latest version of CAPICOM.dll into the directory that contains
SignTool.exe. If CAPICOM.dll exists, you may not have proper
permissions to install CAPICOM. WpfApplication1


Кароче требует CAPICOM.dll Надо попробывать скачать (в инэте есть всеразличные варианты файла). Вот только куда его пихать, хрен его знает.

Скачал с майкрософта. Установил (производится автоматическая установка). Но результата ноль. Видимо чтото упускаю. Но что?

Сообщение было успешно отредактировано singapur22 (03-03-2010 22:26 GMT3 часа, назад)

Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
erlik
[10] Житель
Онлайн статус=0  Профиль    




Посты: 2338
Откуда: Набережные Челны
Занятие: В чем сила, брат? В AutoIT3 и WinAPI.
Возраст: 47

18-03-2015
03-03-2010 22:38 GMT3 часа #1184263   Split
singapur22
в твоем варианте все отобразилось - однако когда я решил снова проверить свой - а потом обратно твой - опять ничего. Странно...
проверь у себя - это отображается?
<ImageBrush>
<ImageBrush.ImageSource>
http://s005.radikal.ru/i212/1003/ae/12234b44f93a.jpg
</ImageBrush.ImageSource>
</ImageBrush>

добавлено спустя 6 минут

я только что сделал публикацию - ничего не требовал - в папке publish получился файл setup и папочка Application Files с какими то еще файлами - сетапник 600 кб.

Сообщение было успешно отредактировано erlik (03-03-2010 22:38 GMT3 часа, назад)

Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
singapur22
[10] Житель
Онлайн статус=0  Профиль    




Посты: 2089
Откуда: Рубцовск
Занятие: Проект "Мобила модмейкера"
Возраст: 44

13-08-2011
03-03-2010 22:52 GMT3 часа #1184288   Split
erlik Отобразилась. Но не сразу. Тоесть, сначала как обычно, долгая загрузка приложения (из-за загрузки компонента с инэта), затем открывается приложение, но вместо изо отображается пустой фон, но немного погодя появляется картинка. Думаю это из-за формата в котором оно у тебя сохранено. Сконверти его или в gif или в png. Лучше в png (более качественная картинка).

Насчёт опубликации. Отключил подписывание, и данную dll больше не требует. Создание производится, но при запуске установщика происходит вылет с ошибкой, типа не могу найти некоторые ресурсы. Может это из-за того, что использованы внешние компоненты, которые даже не добавлены в список ресурсов. Надо проанализировать.


Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
erlik
[10] Житель
Онлайн статус=0  Профиль    




Посты: 2338
Откуда: Набережные Челны
Занятие: В чем сила, брат? В AutoIT3 и WinAPI.
Возраст: 47

18-03-2015
03-03-2010 23:28 GMT3 часа #1184298   Split
singapur22
точно спустя какое время она все таки появляется
слушай а мой сетапник будет рабочий?
может залить его на айфолдер - а ты проверишь? ну пусть не сейчас - позже как время будет а то интересно как там вообще все скопилилось...у меня там путь был указан инетовский.
но ведь по ходу картинка все таки скомипилировалась внутрь проекта...
ничего пока не понимаю в этой компиляции - столько файлов непонятных появляется.

добавлено спустя 3 минут

у меня сетапник сработал - запуск приложения был автоматический.

добавлено спустя 7 минут

вот залил
http://ifolder.ru/16676530
глянь пожалуйста - картинка все таки требует инета как я понял.
а если бы я оставил старый путь до директории на компе тогда что было бы?

Спасибо за проверку.
а ты функции редактирования какие там настроил?

Сообщение было успешно отредактировано erlik (03-03-2010 23:28 GMT3 часа, назад)

Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
singapur22
[10] Житель
Онлайн статус=0  Профиль    




Посты: 2089
Откуда: Рубцовск
Занятие: Проект "Мобила модмейкера"
Возраст: 44

13-08-2011
03-03-2010 23:17 GMT3 часа #1184310   Split
Установилась и работает.
У меня тоже есть результат. Создал простой текстовый редактор, и опубликация прошла успешно.
А вот моё 3D приложение пока никак не поддаётся опубликации. Наверно всётаки из-за внешних ссылок. Надо чтото с ними решать.


Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
erlik
[10] Житель
Онлайн статус=0  Профиль    




Посты: 2338
Откуда: Набережные Челны
Занятие: В чем сила, брат? В AutoIT3 и WinAPI.
Возраст: 47

18-03-2015
04-03-2010 13:16 GMT3 часа #1184552   Split
singapur22
надо бы разобрать два маленьких класса.
CommandBinding и InputBinding - первый биндит команды виндоус к компоненту управления, второй биндит сочетания клавиш к командам. Классы маленькие и изучать там особо нечего - но потребность в них все равно возникать время от времени будет.
Вроде все описано, а сделать чтобы все заработало никак не могу так как не получается весь алгоритм в голове уложить. Да и непонятно как в итоге все выглядеть будет.
Скажем берем такую команду как Open - открыть файл.
Первое действие - делаем привязку это команды к нашему элементу - в моем случае к Menu

Код:
<Menu  Name="menu" Margin="0,590,0,0" Width="185" Height= "110"
                   Background="Aqua">
                    <Menu.CommandBindings>
                    <CommandBinding Command="ApplicationCommands.Open"
                    Executed="Menu_CommandBinding_Executed"
                    CanExecute="Menu_CommandBinding_CanExecute"/>
                    </Menu.CommandBindings>

вроде привязку сделали - также создали два обработчика - один вроде как будет открывать файл другой проверять возможность выполнения команды для целевого объекта команды.
в содержимом меню указываем команду

<MenuItem Header="_Файл" Background="Magenta">
<MenuItem Command="ApplicationCommands.Open"/>
вот здесь я опять же не понял - так ли надо делать.
когда пишешь CommandBinging то подчеркивается - типа для MenuItem не найдено данное свойство.
а ведь надо вроде так писать.

далее в программном коде пишем

Код:
private void Menu_CommandBinding_Executed(object sender, ExecutedRoutedEventArgs e)
        {
           
           //вот здесь что писать надо непонятно  - команда сама по себе подчеркивается.
            OpenFile();
        }

     private void Menu_CommandBinding_CanExecute(object sender, CanExecuteRoutedEventArgs e)
        {

            Menu target = e.Source as Menu;

            if (target != null)
            {
                e.CanExecute = true;
            }
            else
            {
                e.CanExecute = false;
            }

        }


А что дальше? как настроить обработчик? и что в итоге будет вызывать сама команда - дефолтное окошко винды Открыть файл?


Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
singapur22
[10] Житель
Онлайн статус=0  Профиль    




Посты: 2089
Откуда: Рубцовск
Занятие: Проект "Мобила модмейкера"
Возраст: 44

13-08-2011
04-03-2010 14:22 GMT3 часа #1184584   Split
Ну вот и наконецто скомпилил свой 3D проект. Ссылка _http://ifolder.ru/16684640

Правда установка не без дополнительных действий, но всё таки результат на лицо

erlik Я не пойму, что ты хочешь сделать? Привязать итем меню к открытию файла? Или что?


Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
erlik
[10] Житель
Онлайн статус=0  Профиль    




Посты: 2338
Откуда: Набережные Челны
Занятие: В чем сила, брат? В AutoIT3 и WinAPI.
Возраст: 47

18-03-2015
04-03-2010 15:53 GMT3 часа #1184629   Split
singapur22
да прежде всего просто разобраться в алгоритме привязки команд.
в данном случае у меня есть меню - команды копировать, вставить, вырезать - работают сами по себе для целевого объекта текст бокс- хотел попробовать сделать привязку команды открыть файл (сам не знаю какой объекту надо делать целевым - то ли меню то ли бокс ) сама команда открыть в меню есть - но не работает - надо делать биндинг и логику выполнения.
а как все это сделать не могу сообразить. я этим еще неделю назад занимался - но тогда решил на потом оставить - вчера попробовал опять сделать и снова ничего не вышло.

ЗЫ: Щас скачаем

добавлено спустя 10 минут

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

<MenuItem Header="_Правка" Background="Magenta">
<MenuItem Command="ApplicationCommands.Copy"/>
<MenuItem Command="ApplicationCommands.Cut"/>
<MenuItem Command="ApplicationCommands.Paste"/>
<MenuItem Command="ApplicationCommands.Undo"/>
<MenuItem Command="ApplicationCommands.Redo"/>
</MenuItem>

а я хочу еще и эти настроить
<MenuItem Header="_Файл" Background="Magenta">
<MenuItem Command ="ApplicationCommands.Open"/>
<MenuItem Command="ApplicationCommands.Close"/>
<MenuItem Command="ApplicationCommands.Save"/>
<MenuItem Command="ApplicationCommands.Delete"/>
<MenuItem Command="ApplicationCommands.Print"/>
</MenuItem>

добавлено спустя 19 минут

Поигрался. Слушай классно - мне понравилось
надо будет тоже начинать учиться 3D.

Сообщение было успешно отредактировано erlik (04-03-2010 15:53 GMT3 часа, назад)

Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
singapur22
[10] Житель
Онлайн статус=0  Профиль    




Посты: 2089
Откуда: Рубцовск
Занятие: Проект "Мобила модмейкера"
Возраст: 44

13-08-2011
04-03-2010 16:41 GMT3 часа #1184663   Split
erlik Ну, для начала нужно создать окно "OpenFile", которое будет открываться при нажатии на итем "Открыть файл". Привязать к нему команду открытия не составит труда. Типа выделяешь итем в конструкторе (если в конструкторе не отображается, то в xaml устанавливаешь на него курсор) и в свойствах жмёшь дважды на значение Klick. Появится вызываемая функция в файле .cs
Там уже дело техники. Устанавливаешь:

имя_окна_OpenFile.Show()

К сведенью. Чтобы можно было управлять из файла .cs, компонентами созданными в .xaml, в xaml нужно им задавать имена идентификации. Типа:

Код:
      <Image Name="compas">
            <Image.Source>
                <BitmapImage UriSource="D:/Resources/textures/kom.png" />
            </Image.Source>
        </Image>


Или, если параметра Name нету, то через x:

Код:
<PerspectiveCamera x:Name="cam">
                    <PerspectiveCamera.Position>0,2,0</PerspectiveCamera.Position>
                    <PerspectiveCamera.LookDirection>1,-0,1</PerspectiveCamera.LookDirection>
                    <PerspectiveCamera.FieldOfView>60</PerspectiveCamera.FieldOfView>
                    <PerspectiveCamera.Transform>
                        <TranslateTransform3D OffsetX="10" OffsetZ="10" x:Name="camMove"/>
                    </PerspectiveCamera.Transform>
                </PerspectiveCamera>


В .cs вызов компонента будет производиться простым вводом его имени:

имя.метод()

Цитата
надо будет тоже начинать учиться 3D.


Если хочешь, могу выложить исходники.

Сообщение было успешно отредактировано singapur22 (04-03-2010 16:41 GMT3 часа, назад)

Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
erlik
[10] Житель
Онлайн статус=0  Профиль    




Посты: 2338
Откуда: Набережные Челны
Занятие: В чем сила, брат? В AutoIT3 и WinAPI.
Возраст: 47

18-03-2015
04-03-2010 17:16 GMT3 часа #1184747   Split
singapur22
я вот и думал - окно открытия само появится или нет.
Получается его надо создавать. но такого окна в контролс нет.
В System.Windows.Forms и System.Windows.Controls очень много похожих или практически идентичных по названию элементов, но методы разные - и каждый работает только для своего пространства имен.
я вот в своем проекте методы из Forms не могу использовать.
даже обработчики нажатия кнопки и то разные.

про Name и x:Name я знаю - уже использовал.

А для остальных команд - сохранить, распечатать и прочее - тоже что ли получается нужны свои окна?
(Диалоговое окно печати в контролс есть)

Исходники: да выкладывай - посмотрю с большим интересом.


Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
singapur22
[10] Житель
Онлайн статус=0  Профиль    




Посты: 2089
Откуда: Рубцовск
Занятие: Проект "Мобила модмейкера"
Возраст: 44

13-08-2011
04-03-2010 17:48 GMT3 часа #1184777   Split
erlik Ты просмотри любой текстовый редактор в действии. Где и когда, какие окна используются, а где нет. И делай по аналогии. Создавать естественно придётся, раз Windows.Forms не используешь. Хотя можно создать отдельную форму приложения, которая будет тесно связана с основным проектом. Тоесть создай отдельный класс с привязкой не к Window, а к Form. Типа так:

Код:
namespace твоё пространство имён
{
    public partial class Form1 : Form
    {
        ...
    }

}


И создавай в нём всё что пожелаешь на основе виндоузовских форм.

P.S. Ща выложу.

Сообщение было успешно отредактировано singapur22 (04-03-2010 17:48 GMT3 часа, назад)

Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
erlik
[10] Житель
Онлайн статус=0  Профиль    




Посты: 2338
Откуда: Набережные Челны
Занятие: В чем сила, брат? В AutoIT3 и WinAPI.
Возраст: 47

18-03-2015
04-03-2010 17:50 GMT3 часа #1184791   Split
singapur22
сложновато пока для моего понимания - но будем разбираться.
окно настройки параметров печати вызвалось без проблем через создание его экземпляра в коде
PrintDialog pDialog = new PrintDialog();
однако там тоже много чего непонятного и для полной настройки нужно подключать какие еще доп пространства имен.


Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
singapur22
[10] Житель
Онлайн статус=0  Профиль    




Посты: 2089
Откуда: Рубцовск
Занятие: Проект "Мобила модмейкера"
Возраст: 44

13-08-2011
04-03-2010 18:00 GMT3 часа #1184792   Split
Держи исходники _http://ifolder.ru/16687971

добавлено спустя 8 минут

erlik А чё ты говоришь, что формы в Wpf не работают? Всё работает. Например:

Открытие "OpenFileDialog"

Код:
    System.Windows.Forms.OpenFileDialog ofd = new System.Windows.Forms.OpenFileDialog();
    ofd.ShowDialog();


Открытие простого мессиджа вывода инфы:

Код:
System.Windows.Forms.MessageBox.Show("привет!");

Сообщение было успешно отредактировано singapur22 (04-03-2010 18:00 GMT3 часа, назад)

Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
erlik
[10] Житель
Онлайн статус=0  Профиль    




Посты: 2338
Откуда: Набережные Челны
Занятие: В чем сила, брат? В AutoIT3 и WinAPI.
Возраст: 47

18-03-2015
04-03-2010 19:09 GMT3 часа #1184820   Split
singapur22
я сделал так

namespace MyForms
{
public partial class Form1 : Form
{

private void but7_Click(object sender, RoutedEventArgs e)
{

System.Windows.Forms.OpenFileDialog OpenDialog = new System.Windows.Forms.OpenFileDialog();


OpenDialog.ShowDialog();
}

}

}


но у меня подчеркивается Form и требует директиву using на сборку -но как я уже тебе говорил - когда эту сборку расскоментариваю вверху файла - у меня сразу весь код подчеркивается красным из-за неоднозначных ссылок между этими двумя namespace .
ими лучше пользоваться раздельно - иначе очень неудобно получается.

код у меня в cs на 400 строк - и править весь как то не хочется.

добавлено спустя 21 минут

перенес указание на сборку внутрь namespace
namespace MyForms
{
using System.Windows.Forms;
только теперь ругается на сам обработчик but7_Click типа "WpfApplication2.Window1" не содержит для него определения.

добавлено спустя 22 минут

singapur22
спасибо за исходники скачал - буду разбираться.

А теперь насчет открыть файл - в общем сделал я и без неймспейс нового и даже без раскоментаривания сборки - стоило только поменять private void на public void в обработчике и все заработало
нда синтаксис мне еще учить и учить...

за доп. коллбеки спасибо - буду разбираться - не встречал еще таких.

Сообщение было успешно отредактировано erlik (04-03-2010 19:09 GMT3 часа, назад)

Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
singapur22
[10] Житель
Онлайн статус=0  Профиль    




Посты: 2089
Откуда: Рубцовск
Занятие: Проект "Мобила модмейкера"
Возраст: 44

13-08-2011
04-03-2010 19:06 GMT3 часа #1184898   Split
erlik Ну во первых, как я уже выяснил Form создавать не нужно. Во вторых, если всётаки решил пойти по этому пути, то в using никаких ссылок задавать не нужно. Пропиши вместо Form полный путь к классу:

...
public partial class Form1 : System.Windows.Forms. Form
...


А вообще, для создания диалогового окна OpenFile делай так:
Файл Window.xaml.cs
Код:
...
    public partial class Window1 : Window
    {
//создаём объект класса диалогового окна OpenFile;
        System.Windows.Forms.OpenFileDialog openF;

        public Window1()
        {
            InitializeComponent();
//создаём диалоговое окно OpenFile;
            openF = new System.Windows.Forms.OpenFileDialog();
//установка колбэка на нажатие "OK" в диалоговом окне.
            openF.FileOk += new System.ComponentModel.CancelEventHandler(openF_FileOk);
        }
//функция вызываемая при нажатии "OK" в диалоговом окне.
        void openF_FileOk(object sender, System.ComponentModel.CancelEventArgs e)
        {
            string fileName = openF.FileName; //путь к выбранному файлу;
            твои дальнейшие действия над путём к файлу fileName;
        }

//функция вызываемая при нажатии "Открыть" в меню.
       private void button7_Click(object sender, RoutedEventArgs e)
        {
            //открыть диалоговое окно OpenFile;
            openF.ShowDialog();
        }
...


Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
erlik
[10] Житель
Онлайн статус=0  Профиль    




Посты: 2338
Откуда: Набережные Челны
Занятие: В чем сила, брат? В AutoIT3 и WinAPI.
Возраст: 47

18-03-2015
04-03-2010 20:08 GMT3 часа #1184967   Split
singapur22
есть две проблемы: как сделать чтобы выбранный в окне файл (любой файл) открывался на коллбек выбора FileOk в поле текст бокса.
Я имею ввиду есть ли простой метод для того чтобы содержимое файла открывалось именно там. Или надо использовать методы IO открытия и чтения файлов и как то копировать содержимое выбранного файла в текст бокс?
И второе - без биндинга нельзя сделать команду открыть файл активной в меню. Я пока через Клик кнопки вызывал окно Открыть. Тот же клик в меню ничего не дает - строчка открыть остается неактивной.


Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
singapur22
[10] Житель
Онлайн статус=0  Профиль    




Посты: 2089
Откуда: Рубцовск
Занятие: Проект "Мобила модмейкера"
Возраст: 44

13-08-2011
04-03-2010 20:28 GMT3 часа #1184988   Split
erlik Чёта ты там намудрил, не понятно чего. Вот я попытался сам создать меню в Wpf:

Код:
<Menu Height="22" Margin="0,3,0,0" Name="menu1" VerticalAlignment="Top">
            <MenuItem  Header="Файл" ToolTip="Операции над файлами" Width="50" Height="20" Name="File" IsTextSearchEnabled="False">
                <MenuItem Header="Открыть" ToolTip="Открыть файл" Width="180" Height="20" Name="OpenFile" IsTextSearchEnabled="False" Click="OpenFile_Click"/>
                <MenuItem Header="Создать" ToolTip="Создать текстовый файл" Width="180" Height="20" Name="NewFile" IsTextSearchEnabled="False" Click="NewFile_Click" />
                <MenuItem Header="Закрыть" ToolTip="Закрыть файл" Width="180" Height="20" Name="CloseFile" IsTextSearchEnabled="False" Click="CloseFile_Click" />
                <MenuItem Header="Сохранить" ToolTip="Сохранить файл" Width="180" Height="20" Name="SaveFile" IsTextSearchEnabled="False" Click="SaveFile_Click" />
                <MenuItem Header="Сохранить как..." ToolTip="Сохранить файл как..." Width="180" Height="20" Name="SaveFileAs" IsTextSearchEnabled="False" Click="SaveFileAs_Click" />
                <MenuItem Header="Выход" ToolTip="Выход из приложения" Width="180" Height="20" Name="Exit" IsTextSearchEnabled="False" Click="Exit_Click" />
            </MenuItem>
        </Menu>


Как видишь, никакого биндинга тут нету. Да и не нужен он здесь вообще.

А на счёт открытия содержимого файла, я тебе написал выше. Тоесть:

...
//установка колбэка на нажатие "OK" в диалоговом окне.
openF.FileOk += new System.ComponentModel.CancelEventHandler(openF_FileOk);
...


и

//функция вызываемая при нажатии "OK" в диалоговом окне.
void openF_FileOk(object sender, System.ComponentModel.CancelEventArgs e)
{
string fileName = openF.FileName; //путь к выбранному файлу;
твои дальнейшие действия над путём к файлу fileName;
}


Далее. Чтобы получить содержимое файла, используешь такой метод:

string text = System.IO.File.ReadAllText(fileName);
//выводишь содержимое файла
твой_блок.Text = text;


Данный метод "открывает файл//считывает данные//закрывает файл" Это безопасный режим чтения файлов.
Вот в принципе и всё. Ничего сложного нету.


Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.


Форумы > Специализированные > Hard & Soft > Программирование на C# (C Sharp)

Страница 1 из 91234 »Последняя





???????@Mail.ru Rambler's Top100
Продолжая пользоваться сайтом, вы соглашаетесь с использованием файлов cookie. Страницы сайта могут содержать информацию, запрещенную для
просмотра посетителям младше 18 лет. Авторское право на серию игр «S.T.A.L.K.E.R» и используемые в ней материалы принадлежит GSC Game World.

Использование материалов сайта возможно с разрешения администрации. Все права защищены. © 2004–2024 «Stalker-Portal.ru»