|
Модераторы: Partizan, gambit |
|
AntonSaburov |
|
|||
Штурман Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 6 Всего: 118 |
Всем привет !
Данная тема появилась по нескольким причинам: 1. Хотелось бы все-таки, чтобы у нас посетители появлялись чаще. 2. Т.к. технология достаточно новая для многих на просторах СНГ (да вообщем-то и по миру), то какой-либо FAQ устраивать пока не получается - мало информации Здесь будут пока собираться ваши находки, которые могут как-то помочь в освоении .NET. Возможно, что в дальнейшем этот раздел превратиться во что-то более понятно. Ну а пока пусть будет в таком виде. Все ваши находки вы можете опубликовывать сразу - тема не будет закрыта. Большая просьба - подходите ответственно, публикуйте только проверенную информацию.[b] |
|||
|
||||
AntonSaburov |
|
|||
Штурман Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 6 Всего: 118 |
Спасибо cully
Вот наткнулся на тот компонентик, который отображает свойства компонентов в VS .NET. Может это для кого-то и не новость, но все же. Идем в Toolbox, из контекстного меню выбираем Customize Toolbox, закладка .NET Framework Components, ищем там Property Grid, добавляем на Toolbox, выбираем, кидаем на форму, при загрузке формы такой код:
и далее в рунтайме меняем любые свойства формы, естественно, что этот компонент может редактировать свойства любого объекта. Т.е. в свое распоряжение мы получили довольно удобный, симпатичный, а главное мощный компонент редактор свойств. |
|||
|
||||
AntonSaburov |
|
||||
Штурман Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 6 Всего: 118 |
Данная заметка не претендует на истину в последней инстанции - если кто-то нашел иное решение проблемы, милости прошу свои комментарии.
Итак, как только я стал разбираться с тредами мне само собой захотелось передать параметры в функцию, которая в этом треде исполняется. Увидев стандартное использование тредов, я не нашел возможности передать параметры и полез в MSDN (а куда же еще). И что я там вижу
Может я и стал с годами тупее, но сразу осознать, что и как происходит, к своему сожалению, я не смог. После того, как я все-таки разобрался, я стал укладывать все в понятное русло для того, чтобы использовать технику передачи параметров в дальнейшем. И тут я понял еще более неприятное - я не могу это делать просто и понятно для себя. После некоторых раздумий и проб я пошел по пути, который напоминает работу с тредами в JAVA - наследование класса Thread. Но т.к. наследовать в NET от Thread нельзя пришлось писать класс-обертку, после которой я все-таки смог увидеть, как мне быстро делать треды и использовать параметры. Идея очень простая и иллюстрируется кодом:
Данный пример в принципе должен давать исчерпывающие ответ. Видно, что теперь мы можем передавать любое количество параметров понятным способом. Во всяком случае мне гораздо проще использовать такой подход, нежели который предлагает Microsoft. Я не гарантирую, что кто-то такое уже не придумал, но пусть эта информация не пропадет. |
||||
|
|||||
Baa |
|
|||
Эксперт Профиль Группа: Экс. модератор Сообщений: 2639 Регистрация: 12.4.2002 Где: Москва Репутация: 1 Всего: 12 |
Появилась нужда узнать имя хоста из днс по его ип...
вот так это решается:
з.ы. а вообще, сначала был против ентой техи (я про .NET), а теперь даже нравится распробовал -------------------- "Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande |
|||
|
||||
AntonSaburov |
|
|||
Штурман Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 6 Всего: 118 |
Данная информация для начинающих изучать WebApplication + ASP.
Все достаточно быстро соображают, что для создания WebApplication необходимо запустить IIS. Но как потом оказывается, этого недостаточно. Положив на форму какие-нибудь контролы, запускаем и ... страничка приходит без них. Для того, чтобы IIS понимал, как обрабатывать такие страницы, необходимо установить дополнительные расширения. Для этого необходимо запустить файл aspnet_regiis.exe -i Обычно он находится в каталоге с csc.exe, ildasm.exe - WINNT\Microsoft.NET\Framework\v1.0.3705. Последний каталог может отличаться - зависит от номера билда .NET |
|||
|
||||
simanyay |
|
|||
Антон Ковалёв Профиль Группа: Участник Сообщений: 2053 Регистрация: 22.8.2002 Репутация: нет Всего: 36 |
Не знаю, насколько это заметка, но всё же... Лично я на этом попался. При объявлении указателя в С++ действия оператора * не распространяется на весь список переменных т.е.
int* p, q; // Указатель только p А вот в C# распространяется: int* p, q; // Указатель и p и q -------------------- «It's better to be a pirate than to join the Navy» — Steve Jobs. |
|||
|
||||
AntonSaburov |
|
|||
Штурман Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 6 Всего: 118 |
Модератор:
Прошу всех не заниматься обсуждением находок в данном топике. Если есть вопросы - открывайте новую тему. И прошу не обижаться - такого рода сообщения буду удалять. |
|||
|
||||
AntonSaburov |
|
|||
Штурман Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 6 Всего: 118 |
"Как в VS.net работать с EXСEL"
Т.к. эта тема фактически является темой "Как работать с COM из .NET", то родился такой экспромт 1. Создаем новый проект в .NET. 2. В Solution Explorer (Ctrl+Alt+L) на пункте Reference щелкаем правой кнопкой мыши и выбираем "Add Reference..." 3. В диалоговом окошке "Add Reference" выбираем закладку COM и там находим Microsoft Excel. 4. Делаем Select. 5. Нажимаем OK Теперь можно работать. Для примера просто поднимем Excel
Если глянуть в каталог bin, то можно увидеть, что созданы дополнительные dll, которые по сути являются .NET обертками вокруг нужных COM-объектов. Обычно они имеют префикс Interop.*. Например для Excel будет Interop.Excel.dll. Для более продвинутых программистов, которые могут определить какой файл необходимо обработать можно использовать утилиту tlbimp. Ее описание можно найти в документации. |
|||
|
||||
AntonSaburov |
|
|||
Штурман Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 6 Всего: 118 |
ВОПРОС
Приветствую, господа! Обращаюсь к Вам с вопросом по C#. У меня проблема с программным назначением событий. Вроде делаю все правильно, но ничего не выходит. Ниже приведена часть кода реализующего всего лишь пару операций: 1) создать страничку TabPage в уже имеющимся TabControl на форме 2) поставить на нее (TabPage) один комонент RichTextBox 3) назначить событие ModifiedChanged для RichTextBox'a 4) изменить счетчики для правильности внутренней работы приложения. После выполнения этого кода, функция ProgrammChanged(...) просто не выполняется. Может быть я что-то не так делаю? (скорее всего так оно и есть)
ОТВЕТ Я поэкспериментировал - действительно, достаточно странное поведение. Хотя понять его можно. Вообщем дело в следующем - если просто меняешь текст в RichEdit, то Modified устанавливается в true. Но НИКАКИХ обработчиков при таком изменении текста не вызывается. А вот если ты ручками меняешь Modified на противоположное значение, то функция вызывается. Т.е. если ты менял текст, то Modified устанавливается в TRUE и при установке его в FALSE обработчик вызывается. Если ты не менял текст и решил поставить Modified в TRUE, то обработчик опять же вызывается. В принципе логика объяснима - если текст имеет признак, что его МЕНЯЛИ, то смена признака на то, что его НЕ МЕНЯЛИ должно приводить к некоторым действиям по обработке такого важного события. И обратное событие тоже - НЕ МЕНЯЛИ на МЕНЯЛИ. |
|||
|
||||
neutrino |
|
|||
Gothic soul Профиль Группа: Модератор Сообщений: 3041 Регистрация: 25.3.2002 Где: Верхняя Галилея, Кармиэль Репутация: 3 Всего: 62 |
Приветствую, господа!
Вот код, который я состряпал для нахождения положения каретки в RichTextBox.
Это сообщение отредактировал(а) AntonSaburov - 24.4.2003, 18:14 -------------------- The truth comes from within ... Покойся с миром, Vit |
|||
|
||||
AntonSaburov |
|
|||
Штурман Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 6 Всего: 118 |
Баги и их последствия:
Это то, что я успел накопать при работе с .NET. Теперь делюсь. 1. При отладке приложения если строка содержит 0 в центре строки, то в окне Watch вы увидите только, что находится до 0. А дальше ничего. Хотя строка реально может быть длиннее. И дебагер Вам скажет, что длина именно до нуля. Вот такой вот дебагер. 2. Array.GetValue(idx). На эти грабли я наступил часа на два - по документации он должен возвращать Exception в случае, если индекс выходит за границы массива. Так вот функция просто прерывается и все. Никаких исключений под дебагером, никаких исключений в RunTime. А так как этот вызов у меня был последним в функции, то повис я с ним ... |
|||
|
||||
stab |
|
|||
Эксперт Профиль Группа: Экс. модератор Сообщений: 1839 Регистрация: 1.1.2003 Репутация: 22 Всего: 48 |
почти 7 (семь) месяцов назад мною была поднята следующая тема:
http://forum.vingrad.ru/index.php?act=ST&f=47&t=6749 ... и вот решение найдено
сей код динамически вызывает Beep(...) из kernel32 з.ы. жалко AntonSaburov больше не появляется, он бы порадовался. -------------------- 6, 6, 6 - the number of the beast. |
|||
|
||||
AntonSaburov |
|
|||
Штурман Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 6 Всего: 118 |
Возникла тут задача - добавить пункт в системное меню. После некоторого думания и хождениа по MSDN и Инету родилось вот такое. (Кусок просто добавляется к форме)
|
|||
|
||||
foRaver |
|
|||
Опытный Профиль Группа: Участник Сообщений: 561 Регистрация: 6.7.2003 Где: Düsseldorf Репутация: 1 Всего: 3 |
Незнаю, может кому и пригодится...
у меня тут по C# книжечка вPDF завалялась от O'Ryllie... и по VB.NET (language in nutshell), тоже от этого-же издания. Если кому надо, обрашажтесь. ;) |
|||
|
||||
AntonSaburov |
|
|||
Штурман Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 6 Всего: 118 |
Спасибо dead_ricky
Вопрос Установил VS.NET и MSDN к нему. Запуская VS нажимаю F1 вылазиет сообщение что мол MSDNа, то нету, мол нажмите F1 для того что бы узнать чтобы делать далеьше. Так вот если нажать этот F1, то там предлагают установить MSDN, а если нажать OK (на этом диалоговом окне с мерзким сообщением) или Esc, то все ништяк, MSDN прекрасно работает. Ну меня это сообщение раздаражает, может кто знает как от него избавиться! Ответ Все, проблема решена! Если кому интересно, то могу рассказать как. А вот как. У меня версия VS 7.1 а MSDN под 7.0. Полазив в реестре, в узле: [H(точно не помню)\Software\Microsoft\VisualStudio\...] нашел две папки (или как их там): 7.0 и 7.1. В обоих папках были папки Help. Малость посмотрев на них и особо ничего не поняв, решил папку 7.1\Help заменить папкой 7.0\Help. И все заработало! Т.е. исчезли все мерзкие сообщения! |
|||
|
||||
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |