Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Программирование в среде .NET (ASP.NET,ADO.NET) на C#/VB.NET

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162

Открыть новую тему     Написать ответ в эту тему

ppkp

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Дык, тогда надо все время менять ClipBounds или куда ?
 
Вот, нарисована линия (или несколько) по старым точкам.  foreach .. DrawLine..
Теперь приходят новые данные (из Com порта, к примеру. И нужно их хранить где-то). Нужно уже нарисованные линии сдвинуть вправо,  TranslateTransform.. (и что-то еще)
 а слева снова нарисовать новую линию (или несколько) по новым данным и т.д.
 
Вся область видима, только она должна двигаться. С BitBlt у меня получалось, а здесь чего-то не догоняю. Недавно начал.

Всего записей: 480 | Зарегистр. 13-04-2006 | Отправлено: 19:04 15-09-2009
Omicron_Persey_8



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ppkp
Вот набей код:

Код:
public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
                         
        }
 
        private void Form1_MouseDown(object sender, MouseEventArgs e)
        {
            Graphics gr = this.CreateGraphics();
            gr.FillEllipse(Brushes.Red, new Rectangle(e.X - 1, e.Y - 1, 3, 3));
        }
    }

Там значения нигде не сохраняются, но при этом точки все равно остаются на форме. Вот поэтому я и писал, что для целей рисования графика значения сохранять не нужно.
В общем, последовательность действий такая:
1. Создаешь свой контрол для графика (Во-первых, у графика будет свой Graphics, во-вторых, повторное использование кода никто не отменял, вдруг потом пригодится.)
2. В нужный момент времени проверяешь, чтобы следующая точка графика попадала в ClipBounds. Если есть где рисовать, то рисуешь. Если нет, то сдвигаешь ClipBounds на расстояние, чтобы нарисовать следующую точку и т. д.

Всего записей: 282 | Зарегистр. 02-09-2007 | Отправлено: 22:30 15-09-2009
ppkp

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо. Для рисования  в Вашем примере действительно не нужно хранить данные, но если приходит несколько значений, то, чтобы их отрисовать, очевидно, необходимо запомнить их где-то. Потом они заменяются новыми и т.д. Что используют обычно - список или другое ?
Сдвигание ClipBounds - это ClipBounds.Offset ? Не хочет.
Спасибо, в любом случае. Буду рыть дальше.

Всего записей: 480 | Зарегистр. 13-04-2006 | Отправлено: 23:41 15-09-2009
Omicron_Persey_8



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ppkp
Обычно используют List<T>, но можешь что-нибудь свое придумать.
 
Добавлено:
А двигать при помощи TranslateTranform

Всего записей: 282 | Зарегистр. 02-09-2007 | Отправлено: 08:12 16-09-2009
muzzle



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
вопрос от лентяя:
будет ли работать программа на другом компе, если я просто перекину туда сформированный ехе'шник? продполагается, что предварительно на другом компе установлен net.framework 3.5
 
скажу честно, что попробовал и работало, но затем перестало, после добавления кода второго потока. надо делать инсталяшку?
 
Добавлено:
зы C# 2008 express

Всего записей: 99 | Зарегистр. 29-04-2003 | Отправлено: 16:35 17-09-2009
Omicron_Persey_8



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
muzzle
Если твоя прога не использует библиотек, не входящих в .NET Framework, если не использует Platform Invoke, COM и т. п., то 99% что будет. Но, как всегда, возможны варианты.

Всего записей: 282 | Зарегистр. 02-09-2007 | Отправлено: 17:32 17-09-2009
ppkp

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите, пожалуйста, какими средствами сделать пришпиленную панель (в стиле
Обозреватель решений, Панель элементов и т.д. в Visual Studio) ? Panel и SplitContainer пробовал - не получилось. Или только сторонние компоненты типа DevExpress могут это ?
Спасибо.

Всего записей: 480 | Зарегистр. 13-04-2006 | Отправлено: 00:42 19-09-2009
blaro



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Omicron_Persey_8

Цитата:
В конструкторе форм. Или делаешь одну форму с кнопками "Далее" и "Назад" и остальные шаги наследуешь от нее и дописываешь в них контролы. Либо делаешь универсальный класс, который формы на лету тебе будет делать.

А где можно по подробней найти инфу?

Всего записей: 311 | Зарегистр. 29-01-2006 | Отправлено: 16:03 19-09-2009
Omicron_Persey_8



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
blaro
Мне ничего именно про создание мастеров не попадалось. Наиболее полезным будет инфа про создание контролов для .NET. А лучше всего сделай какую-нибудь форму с элементами управления и посмотри, что студия тебе впишет в метод Form1.InitializeComponent(). Там все будет.

Всего записей: 282 | Зарегистр. 02-09-2007 | Отправлено: 22:44 19-09-2009
blaro



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Есть один классный сайт www.codeproject.com там полно всякого, в том числе и как создать мастер. В строке поиска вбиваете wizard и получаете полный список ссылок.
Вот ссылки выбранные случайно:
http://www.codeproject.com/KB/miscctrl/DesignTimeWizard.aspx
http://www.codeproject.com/KB/miscctrl/ak_wizard.aspx
http://www.codeproject.com/KB/dialog/WizardForm.aspx
А вот самая интересная имхо...
http://www.codeproject.com/KB/cs/WizardDemo.aspx

Всего записей: 311 | Зарегистр. 29-01-2006 | Отправлено: 14:30 20-09-2009 | Исправлено: blaro, 14:35 20-09-2009
Yuurk

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем привет. Столкнулся с такой задачей: надо записать ADO RecordSet в текстовое поле объекта. Идея такая - через XML.
 
Есть форма, есть соответствующий ей объект.  
1. У объекта есть различные поля (атрибуты) ("Дата создания", "ФИО", "Должность" и тд.). Также у этого объекта есть текстовое поле.  
2. На форме есть табличка, ДатаСоурсом у которой выставлен ADO DataSet. В рантайме генерирую RecordSet для того, чтобы подсунуть его в DataSet.    
  Все данные формы должны храниться в 1 объекте. Для того, чтобы хранить динамическую таблицу (набор столбцов всегда различный)  в объекте - использую XML. Записать в поле я могу, а вот считать - не получается. Собсно задача: РекордСет заполнить из XML, созданного им же в рантайме. Без сохранения на жесткий.

Всего записей: 4 | Зарегистр. 25-09-2009 | Отправлено: 12:14 28-09-2009
MagistrAnatol



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
помогите с задачей - надо написать под компакт фреймворк консольное приложение или сервис чтобы отслеживались изминения в задачах и встречах - если что-то поменялось -  
запускаем внешнее приложение
вот начало моей разрабоки - консоль - но она закрывается зараза
using System;
using Microsoft.WindowsMobile.Status;
   
namespace ChState
{
 
    class Program
    {
       
 
        static void Main(string[] args)
        {
            SystemState tastState;    
            tastState = new SystemState(SystemProperty.TasksActive, true);
            tastState.Changed += new ChangeEventHandler(tastState_Changed);
            Console.ReadLine();
 
        }
        static void tastState_Changed(object sender, ChangeEventArgs args)
        {
            System.Diagnostics.Process p = new System.Diagnostics.Process();
            p.StartInfo.FileName = "Kalendar.exe";
            p.Start();            
 
        }
 
    }
 
}

Всего записей: 2120 | Зарегистр. 09-04-2003 | Отправлено: 11:37 01-10-2009
feor



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ppkp
Стандартными, похоже, не обойтись. Но можно найти что-нибудь не коммерческое.

Всего записей: 164 | Зарегистр. 04-09-2005 | Отправлено: 12:08 02-10-2009
blaro



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Привет всем!
У меня в программе имеется DataGridView в котором отображаются отсортированные файлы. Мне надо сделать следующее: двойным кликом открыть файл в своей программе. Т.е. если это мр3, то файл должен открываться в каком нибудь плеере (winamp, kmplayer и др.).  
Событие двойного клика я уже добавил в прогу, а что дальше? Что писать?
Как получить список типов (расширений) файлов, которые используются в опер. системе?

Всего записей: 311 | Зарегистр. 29-01-2006 | Отправлено: 22:22 07-10-2009
dneprcomp



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
blaro

Цитата:
Как получить список типов (расширений) файлов, которые используются в опер. системе?

Выбирай http://filext.com/alphalist.php?extstart=%5EA
 
Только вот вопрос должен звучать так: "Какие типы файлов собираемся открывать. "
Кто кроме тебя может знать, что вы там открывать будете.

Всего записей: 3920 | Зарегистр. 31-03-2002 | Отправлено: 00:55 08-10-2009 | Исправлено: dneprcomp, 01:02 08-10-2009
blaro



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
Только вот вопрос должен звучать так: "Какие типы файлов собираемся открывать. "  
Кто кроме тебя может знать, что вы там открывать будете.

Что значит какие? Любые.. Если это *.mp3 то откроется в медиаплеере, если это *.pdf то в акробате, если это *.txt то в любом текстовом редакторе.
 
Добавлено:

Цитата:
Выбирай  http://filext.com/alphalist.php?extstart=%5EA  

Круто. А как получить тоже самое из Windows'а?

Всего записей: 311 | Зарегистр. 29-01-2006 | Отправлено: 01:16 08-10-2009 | Исправлено: blaro, 01:19 08-10-2009
artbyte

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет всем. Нашел в  MSDN пример по высокопроизводительным асинхронным сокетам  с использованием SocketAsyncEventArgs. Пример для TCP, кто-нибудь может подсказать как его переделать под UDP? Сам пример здесь http://msdn.microsoft.com/ru-ru/library/system.net.sockets.socketasynceventargs.aspx

Всего записей: 4 | Зарегистр. 21-11-2005 | Отправлено: 07:04 08-10-2009
V0lt



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
blaro

Цитата:
Мне надо сделать следующее: двойным кликом открыть файл в своей программе. Т.е. если это мр3, то файл должен открываться в каком нибудь плеере (winamp, kmplayer и др.).

я не мудрил и сделал как в любом учебнике пишут:

Код:
string filename = "D:\pic.jpg";
try
{
  Process.Start(filename);
}
catch
{
}

^ открывается так же, как если бы ты кликнул в проводнике
 

Код:
string proga = "c:\Program Files\AkelPad\AkelPad.exe";
string filename = "D:\doc.txt";
try
{
  Process.Start(proga, filename);
}
catch
{
}

^ принудительное открытие в AkelPad

Всего записей: 10501 | Зарегистр. 05-02-2003 | Отправлено: 08:56 08-10-2009 | Исправлено: V0lt, 09:00 08-10-2009
LuckyStrike



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброго времени суток....подскажите как в С# из файла взять информацию....например я открыл блокнот написал там не сколько фамилий и потом нужно открыть этот файл в массив и отсортировать...как открыть файл?

Всего записей: 78 | Зарегистр. 10-12-2008 | Отправлено: 19:15 08-10-2009
dneprcomp



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
blaro

Цитата:
Что значит какие? Любые..  

Так потому и спросил. Если любые известные данной OS на вот именно этом компьютере, то по методу 1 от V0lt. А вот если какие-нибудь нестандартные расширения(или расширения, не асоциированные на данном компьютере), то тогда метод 2 от V0lt и, возможно, с созданием своего списка расширений.  

Цитата:
А как получить тоже самое из Windows'а?
Перебором HKEY_CLASSES_ROOT

Всего записей: 3920 | Зарегистр. 31-03-2002 | Отправлено: 00:44 09-10-2009
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Программирование в среде .NET (ASP.NET,ADO.NET) на C#/VB.NET


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru