• Пропали все компоненты с формы, в чем причина?

    @cicatrix
    было бы большой ошибкой думать
    Посмотрите в файл formname.Designer.cs. Для всех компонент, которые вы добавляете на форму, в этом файле автогенерируется код по их добавлению.
    Проблема, видимо, в том, что что-то глючит. Попробуйте создать новую форму, и копипастом перенесите программный код из основного модуля (FormName.cs) и (обязательно!) из FormName.Designer.cs в новую форму.

    Можно просто в форме CTRL+A, CTRL+C
    В новой: CTRL-A, CTRL-V

    UPD: Забыл сказать - обязательно проверьте наличие вызова InitializeComponent() в Form_Load. Судя по симптомам, скорее всего, InitializeComponent не выполняется.
    Ответ написан
    Комментировать
  • Есть ли какие либо права на ПО у заказчика?

    @cicatrix
    было бы большой ошибкой думать
    1. Насколько юридически "неподкомпаемо" со стороны заказчика будет продажа исполнителем проекта третьим лицам?


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

    2. Из вопроса №1 вытекает вопрос - получит ли право заказчик требовать с исполнителя возврат выплат?


    Он разве что-то платил исполнителю? Разве имеются какие-либо документальные свидетельства каких-либо вылат? Если вы расписывались в тетрадочке, тогда это уже свидетельство. В этом случае, можно предположить, что договор был заключён в устной форме (законодательство такое предусматривает), а дальше - уж куда кривая российского правосудия выведет. С большой вероятностью можно предположить, что если исполнитель расписывался в получении денежных средств, деньги придётся возвращать, либо как-то доказывать а) наличие договора (пусть и устного), и б) наличие факта выполненных работ.

    3. Ну и, собственно, имеет ли какие либо права на это ПО заказчик?

    Он вполне может заявить, что это он является автором ПО, а вы всё украли. У нас презумпция невиновности, так что это вам надо будет доказывать то, что заказчик там себе что-то присвоил.
    Ответ написан
    Комментировать
  • Как отправить HTML/CSS письмо на электронную почту?

    @cicatrix
    было бы большой ошибкой думать
    А чем стандартный способ отправки через System.Net.Mail.SmtpClient не понравился?
    Ответ написан
  • Как сделать выполнение метода на контроллере 1 раз в сутки в определенное время?

    @cicatrix
    было бы большой ошибкой думать
    Лучше по cron пусть запускается хранимая процедура в базе.
    Веб сервер запускает ваше приложение только по требованию (когда клиент к нему обращается). Периодически (по умолчанию раз в 20 минут) ваше приложение будет перезапускаться.
    Где гарантия, что ваш код не будет выполнен дважды? Может и не страшно, но кто знает, что в этот код будет добавлено потом?
    Любые сервисные операции необходимо выполнять вне контекста веб-приложения. Веб приложение должно обслуживать клиентские запросы, не более.
    Ответ написан
    Комментировать
  • Как писать приложения с нестандартным интерфейсом WindowsForms?

    @cicatrix
    было бы большой ошибкой думать
    Даже на "голом" Windows Forms можно тупо "рисовать" любые элементы управления. Стандартную библиотеки придуманы просто для облегчения данного процесса программистам. В принципе, вам ничего не мешает отрисовывать в окне вообще всё. В целом, это даже не так сложно, как кажется.
    В конце концов, и Windows Forms, и WPF базируются на Win32API.
    Используя стандартные элементы управления (кнопки, текстбоксы, и пр.) даже при простой кастомизации свойств можно добиться весьма неплохих реультатов. Если кажется, что этого мало, возможно, вы просто ещё не всё попробовали. Если же действительно мало, то есть прямые вызовы функций Windows API. Тут вообще можно делать с окном что угодно.
    Ответ написан
    Комментировать
  • Почему ключи шифрования состоят только из цифр?

    @cicatrix
    было бы большой ошибкой думать
    Ключ шифрования это последовательность нулей и единиц (двоичное число). В каком виде их представлять пользователю, значения не имеет.
    Ответ написан
    8 комментариев
  • Как правильно вызвать одну форму из другой?

    @cicatrix
    было бы большой ошибкой думать
    Visual Basic учит вас плохому.
    Он позволяет создать класс формы без явного вызова конструктора. Уходите с него сн C#

    Всегда явно указывайте при помощи слова New:
    frm2 = New Form2
    frm2.Show()
    Ответ написан
    Комментировать
  • Как избежать выхода числового id за пределы диапазона?

    @cicatrix
    было бы большой ошибкой думать
    Если это про базу данных и поле id размерностью в tinyint, то проще вообще убрать identity и присваивать id самостоятельно явным образом.
    Ответ написан
    Комментировать
  • Возможно ли перенести exe программу с SQL базой на другой компьютер?

    @cicatrix
    было бы большой ошибкой думать
    Берёте IL spy, декомпилируете exe сборку, ищете, куда зашит пароль.
    Ответ написан
    Комментировать
  • Как получить Guid только добавленного элемента?

    @cicatrix
    было бы большой ошибкой думать
    using (SqlConnection conn = new SqlConnection(connectionString))
    {
        string sqlText = "INSERT INTO [Library] (Title, Tags, Body) OUTPUT INSERTED.[Id] VALUES(@Title, @Tags, @Body)";
        using (SqlCommand cmd = new SqlCommand(sqlText, conn))
        {
            cmd.Parameters.AddWithValue("Title", title);
            cmd.Parameters.AddWithValue("Tags", tags);
            cmd.Parameters.AddWithValue("Body", body);
                        
            try
            {
                conn.Open();
                Guid insertedGuid = (Guid)await cmd.ExecuteScalarAsync(); // <-- созданный GUID
            }
            finally
            {
                conn.Close();
            }                    
        } // using cmd
    } // using conn
    Ответ написан
    7 комментариев
  • Как реализовать строчную отладку кода в C#?

    @cicatrix
    было бы большой ошибкой думать
    Кирилл Серов, это одна из причин, по которой не стоит без абсолютно крайней необходимости заниматься метапрограммированием. Собственно, выходов у вас особо нет, либо нагромождать тестовый стенд, который в момент перехода к исполнению вашего сгенерированного текста остановит программу, скинет ваш код в файл, вы его загрузите в отладчик, проинициализируете все переменные и объекты, и отладите.
    Второе - раз уж вы интегрируетесь с экселем, рассмотрите VBA в качестве вашего скриптового языка.
    Третье - файловый ввод-вывод и пошаговое логирование в момент исполнения вашего кода со всей интересующей вас информацией.
    И повторюсь, рассмотрите возможность отказаться от генерации компилируемого кода, используйте хотя бы любой скриптовой язык (vbs, js, ps1, python, и т. д.).
    Ответ написан
    Комментировать
  • Как сделать метод для разных форм?

    @cicatrix
    было бы большой ошибкой думать
    Проще сделать отдельный класс (можно статический), в нём сделать метод, который бы принимал на вход в качестве параметра ссылку на ваш DataGridView, да и делал бы с ним, что нужно.

    internal static class Helper
    {
          internal static void SetUpGridView(DataGridView dgv)
         {
           // ... делайте всё здесь
         }
    } // class Helper

    Ну а в классе формы просто:
    Helper.SetUpGridView(this.DataGridView1);
    Ответ написан
    1 комментарий
  • Как на C# реализовать асинхронную очередь задач у объекта?

    @cicatrix
    было бы большой ошибкой думать
    using System;
    using System.Collections.Generic;
    using System.Threading;
    using System.Threading.Tasks;
    
    namespace TasksSample
    {
        public class Worker
        {
            private int id;
            public Worker(int id)
            {
                this.id = id;
            }
            public void DoHardWork()
            {
                Console.WriteLine($"Task {this.id} started.");
                Random rng = new Random();
                int delay = rng.Next(1000, 10000);
                Thread.Sleep(delay);
                Console.WriteLine($"Task {this.id} finished after {delay} ms.");
            } // DoHardWork
        } // class Worker
    
        class Program
        {
            static void Main(string[] args)
            {
                TaskFactory fact = new TaskFactory();
                int TaskCount = 10;
                List<Task> myTasks = new List<Task>();
                for (int id = 0; id < TaskCount; ++id)
                {
                    Worker w = new Worker(id);
                    myTasks.Add(fact.StartNew(() => w.DoHardWork()));
                }
                Task.WaitAll(myTasks.ToArray());
            } // void Main
        } // class Program
    } // namespace TasksSample
    Ответ написан
    2 комментария
  • Каким средством на базе ос windows можно открыть лог файлы посекундных действий пользователя вне зависимости выключен был пк или нет?

    @cicatrix
    было бы большой ошибкой думать
    С NTFS можно попробовать просканировать файловую систему, найти файлы, в которых атрибуты LastAccessTime и LastWriteTime относятся к интересующему вас периоду. Их вряд ли чистили.
    Ещё журналы винды, но они могут быть очищены. Вообще проанализировать log файлы, имеющиеся в системе (если есть). В целом, если заранее не были предусмотрены меры аудита, то, как говорится, поздно пить "Боржоми".
    Подобные проникновения в 99% случаев имеют 2 цели: а) похитить информацию (в этом случае, поезд уже ушёл); б) внедрить шпионское/вредоносное ПО на машину/в корпоративную сеть - здесь ещё можно предпринять какие-то меры по поиску и обезвреживанию.
    Ответ написан
    2 комментария
  • Создание собственного онлайн-редактора кода - с чего начать?

    @cicatrix
    было бы большой ошибкой думать
    Начать надо с парсера (ну или готовый взять), чтобы он мог токенизировать элементы, это самое сложное. Остальное уже тривиально.
    Ответ написан
    Комментировать
  • После чтение файла происходит сложение значений из файла, на выход неожидаемый результат, почуем?

    @cicatrix
    было бы большой ошибкой думать
    StreamReader по умолчанию открывает файл в кодировке UTF-8 и считает, что в одном символе 2 байта.
    Вам явно указывать кодировку файла в инициализации StreamReader.
    И вообще, хорошей практикой будет считать строку (ReadLine), потом уже производить её разбор.
    И, как я уже указал в комментарии, приведение Char к Int32 вернёт код символа, а не строковое значение.
    Для того, чтобы превратить символ "3" в число 3 надо пользоваться методом Parse.
    Ответ написан
    Комментировать
  • Как возвести число в отрицательную степень, не использую функцию Power?

    @cicatrix
    было бы большой ошибкой думать
    Эх, вспомнил школу. По-моему, это было на первом уроке по паскалю - возведение числа а в степень b:

    function MyPower(a,b:real):real;
    begin
          Result := exp(b*ln(a));
    end;
    Ответ написан
  • Как правильно называть следующий синтаксис?

    @cicatrix
    было бы большой ошибкой думать
    Полю Age экземпляра my класса MyClass присвоено значение 5.
    Класс MyClass
    Экземпляр класса - my
    Поле - Age

    У класса могут быть как статические члены (поля, свойства, методы), так и не статические. Особняком стоят константы, делегаты и перечисления, для которых слово static как бы подразумевается.
    Ответ написан
    6 комментариев
  • Как распределять потоки при асинхронном программировании?

    @cicatrix
    было бы большой ошибкой думать
    То, что вы описываете, весьма подходит под классический producer/consumer pattern (производитель/потребитель) Почему-то находится мало источников на русском языке, но англоязычных - полно.
    Есть и готовые реализации данного шаблона.

    Да, и вовсе не обязательно ограничивать количество потоков количеством ядер. Вы вполне можете использовать большее количество потоков, советую поэкспериментировать с количеством, замеряя скорости исполнения, пока не добьётесь оптимального результата.
    Ответ написан
  • Как добавить файл в БД access, а потом его достать?

    @cicatrix
    было бы большой ошибкой думать
    Считываете файл в байтовый массив, потом insert его в поле типа binary, abinary или bigbinary.
    Считываете обычным select и пишете в файл.
    Да, вам надо сохранять ещё и имя файла и его атрибуты (если это важно).

    Но вообще, если есть возможность, я бы заменил Access на любую другую RDBMS (С C# можно прекрасно обходиться SQLEXPRESS, например).
    Ответ написан