Модераторы: Partizan, gambit

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> "Ламерские" вопросы, задаем здесь элементарные вопросы 
:(
    Опции темы
CInNet
Дата 8.6.2010, 19:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 20.7.2009

Репутация: нет
Всего: нет



Есть где-нибудь задачки для новичков, чтоб попрактиковаться?

Добавлено через 1 минуту и 43 секунды
Да это все понятно. Я и так сам себе в основном придумываю задачки, просто не хочется время тратить на раздумья smile
PM MAIL   Вверх
nmn
Дата 8.6.2010, 22:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 593
Регистрация: 26.11.2005

Репутация: нет
Всего: 1



Цитата(CInNet @  8.6.2010,  19:59 Найти цитируемый пост)
Есть где-нибудь задачки для новичков, чтоб попрактиковаться?

по практиковаться в чем? в пользовании языком? в решении алгоритмических задач? использовании какой либо технологии?
PM Skype   Вверх
A5uKa
Дата 9.6.2010, 16:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


TЋ♥s F1rȜ iƧ BurȠiƞg
***


Профиль
Группа: Awaiting Authorisation
Сообщений: 1928
Регистрация: 30.8.2008

Репутация: 3
Всего: 16



Цитата(CInNet @ 8.6.2010,  19:59)
Есть где-нибудь задачки для новичков, чтоб попрактиковаться?

Добавлено @ 20:01
Да это все понятно. Я и так сам себе в основном придумываю задачки, просто не хочется время тратить на раздумья smile

Калькулятор
PM   Вверх
Exai1e
Дата 9.6.2010, 17:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 908
Регистрация: 3.12.2006
Где: Moscow

Репутация: 4
Всего: 30



CInNet, банальный "стартап" начинающих разработчиков:
калькулятор, текстовый редактор, граф. редактор, видео/муз плеер, интернет чатик со смайлами и передачей файлов. Вроде задачи просты, но охватывают нормальное количество технологий (функций ЯП). А в дальнейшем, подобные вопросы врятле будут появляется smile


--------------------
"Решение зависит от выбранного геморроя" © Snowy
"у нас как в армии - либо работает, либо так и задумано"
PM MAIL ICQ   Вверх
KDAlex
Дата 14.6.2010, 11:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 29.5.2009
Где: Россия, Киров

Репутация: 1
Всего: 1



Возможно ли с помощью XmlSerializer десериализовывать XML вида
Код

<?xml version="1.0" encoding="UTF-8"?>
<response>1</response>

Не добавляя дополнительных элементов в XML? 
Понятно, что если сделать из первого
Код

<?xml version="1.0" encoding="UTF-8"?>
<root>
    <response>1</response>
</root>

то класс для сериализации написать несложно.
-----------------------------------------------------------------------------------------------------------
Можно, к примеру так:
Код

XmlSerializer sr = new XmlSerializer(typeof(int), new XmlRootAttribute("response"));


Это сообщение отредактировал(а) KDAlex - 14.6.2010, 12:33
PM MAIL WWW ICQ   Вверх
Track
Дата 16.6.2010, 17:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 18.2.2010

Репутация: нет
Всего: нет



Возможно ли создать event для скролирования ListView в режиме LargeIcon?
Спасибо.


И есть ли еще способ изменения расстояния между иконками в ListView кроме как в режиме OwnerDraw?
Это нашел 
Код

Решение простое. Определяем константы, импортируем функцию.
const int LVM_FIRST = 0x1000;
  const int LVM_SETICONSPACING = LVM_FIRST + 53;
  [DllImport("User32.dll")]
  static extern int SendMessage(IntPtr hWnd, int uMsg, int wParam, int lParam);
  int MakeLong(int x, int y)
  {
   return (y << 16) | x;
  }

И при инициализации листвью, конфигурируем:

 SendMessage(listView1.Handle, LVM_SETICONSPACING, 0, MakeLong(200, 200));

Так расстояние будет 200 между итемами.

http://www.sql.ru/Forum/actualthread.aspx?...amp;hl=#8522359

Это сообщение отредактировал(а) Track - 16.6.2010, 18:05
PM MAIL WWW   Вверх
Track
Дата 16.6.2010, 19:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 18.2.2010

Репутация: нет
Всего: нет



Только вот расстояние между иконками по высоте почему-то не меняется :(

C расстоянием иконок разобрался
Вполне достаточно вот этого
SendMessage(listView1.Handle, LVM_SETICONSPACING, 0, (150*65536 + 140) );

Вопрос по event для скролла остается.

Это сообщение отредактировал(а) Track - 18.6.2010, 14:39
PM MAIL WWW   Вверх
Track
Дата 20.6.2010, 00:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 18.2.2010

Репутация: нет
Всего: нет



Пока что сделал через одно место
Что называется ламерским методом с таймером для проверки пркрутки скроллаsmile

Код

    class ListViewEx: System.Windows.Forms.ListView
    {
      const int LVM_FIRST = 0x1000;
      const int LVM_SETICONSPACING = LVM_FIRST + 53;
      const int WM_VSCROLL = 0x115;
      const int WM_HSCROLL = 0x114;
     [DllImport(\"User32.DLL\")]
     public static extern Int32 GetScrollPos(IntPtr hWnd , IntPtr ScrollBar );
     [DllImport(\"User32.dll\")]
     static extern int SendMessage(IntPtr hWnd, int uMsg, int wParam, int lParam);
     int MakeLong(int x, int y)
        {
            return (y << 16) | x;
        }
      public void SetIconSpacing(int x, int y)
        {
            Message msgSetSpacing = Message.Create(Handle, LVM_SETICONSPACING, IntPtr.Zero, (IntPtr)MakeLong(x, y));
            DefWndProc(ref msgSetSpacing);
        }
    }

PM MAIL WWW   Вверх
gambit
Дата 20.6.2010, 10:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***
Награды: 1



Профиль
Группа: Комодератор
Сообщений: 1359
Регистрация: 25.6.2006
Где: я?

Репутация: 3
Всего: 40



Track, у ListView если не ошибаюсь, есть свойство в котором написано какая строка в текущий момент отображается первой. При скролировании, это свойство меняется. Так, что наверное лучше подцепить событие на изменение этого свойства.

Добавлено через 3 минуты и 1 секунду
Track, ан нет. Я попутал с DataGridView.
Но с другой стороны, что мешает завести данное свойство.
PM MAIL ICQ Skype   Вверх
Track
Дата 20.6.2010, 17:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 18.2.2010

Репутация: нет
Всего: нет



Да есть TopItem
но я работаю с режимом LargeImageList, в котором это свойство не работает,
а во вторых это меня не избавляет от необходимости использовать дурацкий таймер

То есть по хорошему нужен event на событие скролла 

По большому счету разницы не вижу или скролл или topitem
сейчас для получения информации о позиции скролла использую вот это
Код

GetScrollPos(IntPtr hWnd , IntPtr ScrollBar )

и мне кажется что это быстрей и проще чем искать первый видимый Item 
Код

(lv.ClientRectangle.IntersectsWith (lv.Items.Item[i].Bounds))


Это сообщение отредактировал(а) Track - 20.6.2010, 17:19
PM MAIL WWW   Вверх
gambit
Дата 20.6.2010, 17:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***
Награды: 1



Профиль
Группа: Комодератор
Сообщений: 1359
Регистрация: 25.6.2006
Где: я?

Репутация: 3
Всего: 40



Цитата(Track @  20.6.2010,  17:13 Найти цитируемый пост)
а во вторых это меня не избавляет от необходимости использовать дурацкий таймер

почему???
PM MAIL ICQ Skype   Вверх
Track
Дата 20.6.2010, 17:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 18.2.2010

Репутация: нет
Всего: нет



А как этот event вообще написать?
Как они вообще пишутся?

Это сообщение отредактировал(а) Track - 20.6.2010, 20:54
PM MAIL WWW   Вверх
gambit
Дата 20.6.2010, 22:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***
Награды: 1



Профиль
Группа: Комодератор
Сообщений: 1359
Регистрация: 25.6.2006
Где: я?

Репутация: 3
Всего: 40



Цитата(Track @  20.6.2010,  17:21 Найти цитируемый пост)
А как этот event вообще написать?
Как они вообще пишутся?

http://msdn.microsoft.com/ru-ru/library/8627sbea(VS.90).aspx
PM MAIL ICQ Skype   Вверх
Track
Дата 22.6.2010, 11:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 18.2.2010

Репутация: нет
Всего: нет



Спасибо!
Буду вникать.
PM MAIL WWW   Вверх
Track
Дата 26.6.2010, 16:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 18.2.2010

Репутация: нет
Всего: нет



Вот получилось что-то такое

Код

    public class ListViewEx : System.Windows.Forms.ListView
    {
      
      private const int WM_VSCROLL = 0x115;
      private const int WM_KEYUP = 0x0101;
      private const int WM_MOUSEWHEEL = 0x020A;
      
      public event System.EventHandler ScrollEvent;

      protected override void WndProc(ref Message m)
      {
          if (m.Msg == WM_VSCROLL ||
              m.Msg == WM_MOUSEWHEEL ||
              m.Msg == WM_KEYUP )
              if (ScrollEvent != null)
                  ScrollEvent(this, null);
          base.WndProc(ref m);
      }
    }


Все бы замечательно, но есть такая проблема уже при прокрутке листа колесом мыши:
не обновляется ClientRectangle 
и соответственно я не могу вычислить какие Items сейчас отображаются. 

(this.ClientRectangle.IntersectsWith (ithis.Items.Item[i].Bounds))
Получаю старый список Items + одна линия, хотя прокручиваю колесом на три

Обращение через стандартный event MouseWheel  дает такой же результат.
PM MAIL WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1412 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.