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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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

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

Lazy KoT



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
wgnom
Посмотри System.Messaging, в частности System.Messaging.MessageQueue.
 
recvezitor
А если в суммарную картику просто дорисовывать маленькие, через Graphics.DrawImage?

Всего записей: 204 | Зарегистр. 10-09-2004 | Отправлено: 20:06 31-01-2009
recvezitor

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
все равно придется создавать картинку большого размера в памяти. А у меня предполагается ну очень большая картинка

Всего записей: 95 | Зарегистр. 21-11-2006 | Отправлено: 09:48 01-02-2009
KChernov



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
recvezitor
А может их так по-отдельности и сохранять?
А потом сшивать все сразу.
Ещё можно попробовать поискать формат файла картинки, который позволял бы дозапись, ну или матричность/прямой доступ (для последнего бмп пойдёт).

Всего записей: 2471 | Зарегистр. 20-04-2004 | Отправлено: 11:18 01-02-2009
Mike13x13



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

Всего записей: 93 | Зарегистр. 13-09-2007 | Отправлено: 14:44 01-02-2009
SpinnE



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
С WPF Toolkit разобрался, работает. А теперь другое вопрос про datataset. Изначально он прочитывается из xsd, в котором для таблиц прописаны MinOccurs и MaxOccurs. Как их вытащить програмно? Пока в голову приходит только DataSet.GetXmlSchema() и разбор схемы в виде текста...  
 
Или даже так скажем. Для каждой таблицы в dataset нужно определить отношение "один к одному" или "один ко многим".

Всего записей: 241 | Зарегистр. 02-08-2004 | Отправлено: 14:56 01-02-2009 | Исправлено: SpinnE, 15:01 01-02-2009
recvezitor

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

KChernov
А примерчик как "сшить" нету?

Всего записей: 95 | Зарегистр. 21-11-2006 | Отправлено: 16:14 01-02-2009
Lazy KoT



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

Всего записей: 204 | Зарегистр. 10-09-2004 | Отправлено: 18:13 02-02-2009
KChernov



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

Цитата:
А примерчик как "сшить" нету?

Ну это либо внешней утилитой, либо искать библиотеку, которая это умеет.
Ну либо работать с файлами на уровне формата.
Собственно как-то не приходилось это делать, так что конкретно не посоветую.

Всего записей: 2471 | Зарегистр. 20-04-2004 | Отправлено: 10:15 03-02-2009
AndVGri

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть проблема с подключением к базе данных Access. Получается блокировка при открытии базы одним из пользователей при OleDbConnection.Open. Поковырялся с расширенными настройками, для OleDbConnectionStringBuilder выяснил, что по умолчанию стоит Mode = 16, что, видимо, и определяет монопольный доступ. Сменил на 1. Вроде, работает, блокировки нет.
Поискал по инету, так и не нашёл ничего путного про Mode и задаваемые для него констаты. Может кто подскажет что и какие значения означают? Или ссылку на ресурс?

Всего записей: 750 | Зарегистр. 14-12-2005 | Отправлено: 11:24 03-02-2009
SpinnE



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Продолжаем про WPF DataGrid Вопрос про валидацию, как валидировать ошибки ввода в прибинденый dataset? Сам по себе грид их обрабатывает, при ошибочном вводе возвращает прежнее значение, но как перехватить эти исключения?
В статье на CodeProject
 описаны способы валидации, но не совсем понятно, как опять таки с произвольными датасетами...

Код:
 
<dg:DataGrid  Name="dataGrid" AutoGenerateColumns="False" IsSynchronizedWithCurrentItem="True"
                      RowStyle="{StaticResource RowStyle}" ItemsSource="{Binding}">            
            <dg:DataGrid.RowValidationRules>
                <local:RowDataInfoValidationRule ValidationStep="UpdatedValue" />
            </dg:DataGrid.RowValidationRules>
            <dg:DataGrid.Columns>
                <dg:DataGridTextColumn Header="Name">
                    <dg:DataGridTextColumn.Binding>
                        <Binding Path="Name">
                            <Binding.ValidationRules>
                                <local:CellDataInfoValidationRule ValidationStep="UpdatedValue"/>
                            </Binding.ValidationRules>
                        </Binding>
                    </dg:DataGridTextColumn.Binding>
                </dg:DataGridTextColumn>
                <dg:DataGridTextColumn Header="Age">
                    <dg:DataGridTextColumn.Binding>
                        <Binding Path="Age">
                            <Binding.ValidationRules>
                                <local:CellDataInfoValidationRule ValidationStep="UpdatedValue"/>
                            </Binding.ValidationRules>
                        </Binding>
                    </dg:DataGridTextColumn.Binding>
                </dg:DataGridTextColumn>
                <dg:DataGridTextColumn Header="Start" Binding="{Binding Path=StartTime}"/>
                <dg:DataGridTextColumn Header="End" Binding="{Binding Path=EndTime}"/>
            </dg:DataGrid.Columns>
        </dg:DataGrid>        
 
 
Как прописывать колонкам <Binding.ValidationRules>, если я не знаю их количество ?

----------
Пусть этим займется гризли!

Всего записей: 241 | Зарегистр. 02-08-2004 | Отправлено: 12:05 03-02-2009 | Исправлено: SpinnE, 12:15 03-02-2009
Mike13x13



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

Цитата:
Смотри System.Console

Гы. В консольных проектах нет проблем. Да и в вин.форм можно извратиться, к примеру, через WinAPI. Но меня интересует, нет ли стандартных дотНет способов юзать System.Console в винФорм проектах. Я таких не нашел. Но, как говориться, век живи, век учись. Вот я и спрашиваю, может, кто знает... Но че-то мне сдается, что таки нету...

Всего записей: 93 | Зарегистр. 13-09-2007 | Отправлено: 14:09 04-02-2009
EZH



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

Цитата:
Да и в вин.форм можно извратиться, к примеру, через WinAPI

Ты имеешь ввиду через AttachConsole?
 
Я не понял, ты хочешь именно в winform приложении пользоваться выводом через System.Console.WriteLine? А где это должно отображаться - в реальной консоли (доп. окне) или в TextBox?
Если консоль, то само winforms приложение будет из консоли запускаться или открывать само доп. окно консоли?

Всего записей: 1738 | Зарегистр. 02-09-2004 | Отправлено: 15:04 04-02-2009
recvezitor

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
кто нибудь может это объяснить:

Код:
 
 
public static double FindMax(double[] a)
        {
            int i = 1, n = a.Length;
            double max = a[0];
            for (; i < n; i++)
            {
                if (a[i] > max)
                {
                    max = a[i];
                }
            }
            return max;
        }
 
        public static double FindMax(double[] a, out int index)
        {
            int i = 1, n = a.Length;
            double max = a[0];
            index = 0;
            for (; i < n; i++)
            {
                if (a[i] > max)
                {
                    max = a[i];
                    index = i;
                }
            }
            return max;
        }
 
static void Main(string[] args)
        {
            timer1.Elapsed += new System.Timers.ElapsedEventHandler(timer1_Elapsed);
            timer1.Interval = 1;
            times = 0;
 
            int NN = 50000000;
 
            double[] valuesDouble = new double[NN];
 
            for (int i = 0; i < NN; i++)
            {
                valuesDouble[i] = i;
            }
int index = 0;
            times = 0;
            timer1.Enabled = true;
            max = FindMax(valuesDouble, out index);
            timer1.Enabled = false;
            Console.WriteLine("Find max with index: times: {0}ms, max={1}, index = {2}", times, max, index);
 
            times = 0;
            timer1.Enabled = true;
            max = FindMax(valuesDouble);
            timer1.Enabled = false;
            Console.WriteLine("Aleks_max: times: {0}ms, max={1}", times, max);
}
 
 

 
 
В результате:
С нахождением индекса: 8ms;
Без нахождения индекса: 10ms;
 
первый метод работает быстрее несмотря на то, что там выполняется на одно действие больше.
Я лично не могу понять как такое может быть. Добавляем, а получаем меньше...

Всего записей: 95 | Зарегистр. 21-11-2006 | Отправлено: 16:03 04-02-2009
DeMLaN

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А кто может подсказать интересные варианты решения такой задачи:
1. Есть примерно 10 компов завязаных в локалку + на одном из них установлен MS SQL Server 2005.
2. Есть "куча" документов в вордовском формате (doc, rtf) примерно 200 Мб.
 
Нужно сделать программу (оболочку) в которой любой пользователь с любого компа сможет найти нужный документ, просмотреть его, распечатать и экспортировать в pdf, doc, rtf (как вариант docx)

Всего записей: 29 | Зарегистр. 26-10-2006 | Отправлено: 23:46 04-02-2009
Mike13x13



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

Цитата:
Ты имеешь ввиду через AttachConsole?

Этого я в виду не имел (скорее всего ), поскольку подробно не смотрел. На данный момент не настолько критично, что б рыть сильно глубоко.

Цитата:
Я не понял, ты хочешь именно в winform приложении пользоваться выводом через System.Console.WriteLine?  

Именно так. А возможно, и считывать что-нить через System.Console.РидЛайн

Цитата:
А где это должно отображаться - в реальной консоли (доп. окне) или в TextBox?

 в реальной консоли (доп. окне)

Цитата:
Если консоль, то само winforms приложение будет из консоли запускаться или открывать само доп. окно консоли?

 winforms приложение должно само открывать доп. окно консоли.  
 
Скажу чесно, это не особо животрепещущий вопрос, обычно я для вывода инфы в винформах присобачиваю где-нить текстбокс, а тут как-то на автомате вбил Console.WriteLine, компайлер не ругнулся, но в итоге я нихера не увидел. Тут меня и заело - зохотелось "стильно" выводить месаги в сонсоли Порыл МСДН, погуглил, нашел только что-то через импорт ядренных функций, о чем я, в общем-то, и сам догадывался, но делать так не хотел, а хотел именно Console.WriteLine ...
 
recvezitor

Цитата:
В результате:  
С нахождением индекса: 8ms;  
Без нахождения индекса: 10ms;  
 
первый метод работает быстрее несмотря на то, что там выполняется на одно действие больше.  
Я лично не могу понять как такое может быть. Добавляем, а получаем меньше...

А в обратном порядке методы запускать пробовал ? А с чередованием и подсчетом общего и среднего времени? В общем, собери стат. базу, тогда можно подумать.
 
Добавлено:
DeMLaN

Цитата:
А кто может подсказать интересные варианты решения такой задачи:  
1. Есть примерно 10 компов завязаных в локалку + на одном из них установлен MS SQL Server 2005.  
2. Есть "куча" документов в вордовском формате (doc, rtf) примерно 200 Мб.  
 
Нужно сделать программу (оболочку) в которой любой пользователь с любого компа сможет найти нужный документ, просмотреть его, распечатать и экспортировать в pdf, doc, rtf (как вариант docx)

 
На ТЗ это слабовато похоже, но есть у меня готовая програмка для подобных целей, лицензия на 1 комп - $300, на 10 отдам по $200

Всего записей: 93 | Зарегистр. 13-09-2007 | Отправлено: 23:55 04-02-2009
recvezitor

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всякоразно попробовал.Вот можете прогнать у себя если че...

Код:
 
class Program
    {
        #region MinMax
       
        public static double FindMax(double[] a)
        {
            int n = a.Length;
            double max = a[0];
            for (int i = 1; i < n; i++)
            {
                if (a[i] > max)
                {
                    max = a[i];
                }
            }
 
            return max;
        }
 
        public static double FindMax(double[] a, out int index)
        {
            int n = a.Length;
            double max = a[0];
            index = 0;
            for (int i = 1; i < n; i++)
            {
                if (a[i] > max)
                {
                    max = a[i];
                    index = i;
                }
            }
 
            return max;
        }
 
        public static double FindMin(double[] a)
        {
            int n = a.Length;
            double min = a[0];
            for (int i = 1; i < n; i++)
            {
                if (a[i] < min) min = a[i];
            }
            return min;
        }
 
        public static double FindMin(double[] a, out int index)
        {
            int n = a.Length;
            double min = a[0];
            index = 0;
            for (int i = 1; i < n; i++)
            {
                if (a[i] < min)
                {
                    min = a[i];
                    index = i;
                }
            }
            return min;
        }
         
        #endregion MinMax
 
       static int  testCount = 10;
       static int  elementsCount = 100000000;
       static double[] valuesDouble = new double[elementsCount];
       static int index = 0;
       static double max = 0;
       static double averageTime = 0;
        static void Main(string[] args)
        {
            timer1.Elapsed += new System.Timers.ElapsedEventHandler(timer1_Elapsed);
            timer1.Interval = 1;
            times = 0;            
 
            for (int i = 0; i < valuesDouble.Length; i++)
            {
                valuesDouble[i] = i;
            }
 
             
            WithoutIndexTests();
            WithIndexTests();                        
            WithoutIndexTests();
            WithIndexTests();            
        }
 
 
        public static void WithIndexTests()
        {
            averageTime=0;
            for (int i = 0; i < testCount; i++)
            {
                times = 0;
                timer1.Enabled = true;
                max = FindMax(valuesDouble, out index);
                timer1.Enabled = false;
                Console.WriteLine("With index: time={0}ms, max={1}, index={2};", times, max, index);
                averageTime += times / testCount;
            }
            Console.WriteLine("AVERAGE TIME: {0}ms", averageTime);
        }
 
        public static void WithoutIndexTests()
        {
            averageTime = 0;
            for (int i = 0; i < testCount; i++)
            {
                times = 0;
                timer1.Enabled = true;
                max = FindMax(valuesDouble);
                timer1.Enabled = false;
                Console.WriteLine("Without index: time={0}ms, max={1};", times, max);
                averageTime += times / testCount;
            }
            Console.WriteLine("AVERAGE TIME: {0}ms", averageTime);
        }
 
        public static void timer1_Elapsed(object sender, EventArgs e)
        {
            times += timer1.Interval;
        }
    }
 

Всего записей: 95 | Зарегистр. 21-11-2006 | Отправлено: 02:41 05-02-2009
KChernov



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

Цитата:
Нужно сделать программу (оболочку) в которой любой пользователь с любого компа сможет найти нужный документ

Ну это как раз несложно - просто ссылки на все документы (расшаренные в сети) должны быть в БД с достаточной информацией, чтобы по БД их можно было найти.
 

Цитата:
просмотреть его, распечатать

Никто не мешает открыть и распечатать стандартными средствами, но можно и из проги, но сложнее.
 

Цитата:
и экспортировать в pdf, doc, rtf (как вариант docx)

В принципе это всё можно сделать из того же Ворда (для pdf-а надо будет поставить виртуальный принтер, например). Если надо из проги - надо искать конвертер и прикручивать.
 
В принципе если всё по-максимуму делать стандартными средствами, наверное проще всего сделать веб-интерфейс к БД.

Всего записей: 2471 | Зарегистр. 20-04-2004 | Отправлено: 09:40 05-02-2009
Mike13x13



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

Цитата:
Всякоразно попробовал

Заинтриговал. Действительно, тенденция наблюдается.  
Но вот в таком варианте времена практически сравниваются:

Код:
 
class Program
{
    #region MinMax
 
    public static double FindMax(double[] a)
    {
        int n = a.Length;
        double max = a[0]/3.0;
        for (int i = 1; i < n; i++)
        {
            if (a[i]/3 > max)
            {
                max = a[i]/3.0;
            }
        }
            return max;
    }
 
    public static double FindMax(double[] a, out int index)
    {
        int n = a.Length;
        double max = a[0]/3.0;
        index = 0;
        for (int i = 1; i < n; i++)
        {
            if (a[i]/3 > max)
            {
                max = a[i]/3.0;
                index = i;
            }
        }
        return max;
    }
 
    public static double FindMin(double[] a)
    {
        int n = a.Length;
        double min = a[0];
        for (int i = 1; i < n; i++)
        {
            if (a[i] < min) min = a[i];
        }
        return min;
    }
 
    public static double FindMin(double[] a, out int index)
    {
        int n = a.Length;
            double min = a[0];
            index = 0;
            for (int i = 1; i < n; i++)
            {
                if (a[i] < min)
                {
                    min = a[i];
                    index = i;
                }
            }
        return min;
    }
 
    #endregion MinMax
 
    static System.Timers.Timer timer1 = new System.Timers.Timer();
    static double times;
    static int testCount = 50;
    static int elementsCount = 10000000;
    static double[] valuesDouble = new double[elementsCount];
    static int index = 0;
    static double max = 0;
    static double fTime = 0;
    static double averageTime = 0;
    static Random rand = new Random();
    static double fwTime = 0;
    static double fwoTime = 0;
    
    static void Main(string[] args)
    {
        timer1.Elapsed += new System.Timers.ElapsedEventHandler(timer1_Elapsed);
        timer1.Interval = 10.0;
        times = 0.0;
        
        WithoutIndexTests();
        WithIndexTests();
        WithIndexTests();
        WithoutIndexTests();
        WithIndexTests();
        WithoutIndexTests();
        WithoutIndexTests();
        WithIndexTests();
        WithIndexTests();
        WithoutIndexTests();
        WithIndexTests();
        WithoutIndexTests();
        Console.WriteLine("With index: {0}, without: {1}\n", fwTime, fwoTime);
            
    }
 
    static void fillArr(double[] a)
    {
        for (int i = 0; i < a.Length; i++)
        {
            a[i] = rand.NextDouble();
        }
    }
 
    public static void WithIndexTests()
    {
        averageTime = 0; fTime = 0;
        for (int i = 0; i < testCount; i++)
        {
            times = 0;
            fillArr(valuesDouble);
            timer1.Enabled = true;
            max = FindMax(valuesDouble, out index);
            timer1.Enabled = false;
            Console.WriteLine("With index: time={0}, max={1}, index={2};", times, max, index);
            fTime += times;
        }
        averageTime += fTime / testCount;
        fwTime += averageTime;
        Console.WriteLine("With index AVERAGE TIME: {0}\n", averageTime);
    }
 
    public static void WithoutIndexTests()
    {
        averageTime = 0; fTime = 0;
        for (int i = 0; i < testCount; i++)
        {
            times = 0;
            fillArr(valuesDouble);
            timer1.Enabled = true;
            max = FindMax(valuesDouble);
            timer1.Enabled = false;
            Console.WriteLine("Without index: time={0}, max={1};", times, max);
            fTime += times;
        }
        averageTime = fTime / testCount;
        fwoTime += averageTime;
        Console.WriteLine("Without index AVERAGE TIME: {0}\n", averageTime);
    }
 
    public static void timer1_Elapsed(object sender, EventArgs e)
    {
        times += timer1.Interval;
    }
}
 
]
 
А вообще говоря, хз какую оптимизацию делает JIT компайлер. Это, возможно, могут предсказать только его разработчики, и то, не факт А управлять вручную его оптимизацией не представляется возможности.
Можно конечно, для более точного сбора статистики сделать еще циклик, применить правила вычисления среднего (как-то отброс максимального и минимального значения выборки) и запустить все это на пару-тройку часов, если интересно.

Всего записей: 93 | Зарегистр. 13-09-2007 | Отправлено: 11:27 05-02-2009
Lazy KoT



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

Код:
 
using System;
using System.Runtime.InteropServices;
using System.Windows.Forms;
 
namespace MyWinFormsApp
{
    static class Program
    {
        [DllImport( "kernel32.dll" )]
        static extern bool AttachConsole( int dwProcessId );
        private const int ATTACH_PARENT_PROCESS = -1;
 
        [STAThread]
        static void Main( string[] args )
        {
            // redirect console output to parent process;
            // must be before any calls to Console.WriteLine()
            AttachConsole( ATTACH_PARENT_PROCESS );
 
            // to demonstrate where the console output is going
            int argCount = args == null ? 0 : args.Length;
            Console.WriteLine( "\nYou specified {0} arguments:", argCount );
            for (int i = 0; i < argCount; i++)
            {
                Console.WriteLine( "  {0}", args[i] );
            }
 
            // launch the WinForms application like normal
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault( false );
            Application.Run( new Form1() );
        }
    }
}
 

 
Отсюда

Всего записей: 204 | Зарегистр. 10-09-2004 | Отправлено: 12:19 05-02-2009
Mike13x13



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Lazy KoT
Биг сенкс. Поэксперементирую. Тоже, конечно, через ВинАйПИ, но то, что я видел раньше, выглядело похужее. Отдельное спасибо за ссылку.
 
 
Добавлено:
Lazy KoT
Только это не совсем то. Это работает, если только запускаешь приложение из консоли. Эта же консоль и будет юзаться приложением. А я хотел, чтоб приложение открывало свою консоль, независимо от того, как было запущено.
Решается таким макаром:

Код:
 
[DllImport("kernel32.dll")]
static extern bool AttachConsole(int dwProcessId);
[DllImport("kernel32.dll")]
static extern bool AllocConsole();
[DllImport("kernel32.dll")]
static extern bool FreeConsole();
private const int ATTACH_PARENT_PROCESS = -1;
 
[STAThread]
static void Main( string[] args )
{
        
    FreeConsole();
    AllocConsole();
    AttachConsole(ATTACH_PARENT_PROCESS);
 
    // to demonstrate where the console output is going  
    int argCount = args == null ? 0 : args.Length;
    //Console.Clear();
    Console.WriteLine("\nYou specified {0} arguments:", argCount);
    for (int i = 0; i < argCount; i++)
    {
        Console.WriteLine("  {0}", args[i]);
    }
 
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);
    Application.Run(new Form1());
}
 

Вот это уже работает именно так, как я и хотел, кроме того, что я не хотел юзать WinAPI и надеялся, что что-то такое имеется в .Нет.

Всего записей: 93 | Зарегистр. 13-09-2007 | Отправлено: 16:15 05-02-2009 | Исправлено: Mike13x13, 17:52 05-02-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