Ответы пользователя по тегу C#
  • Проблема в сортировке dataGridview?

    @SlNik
    Причина:
    dataGridViewTextBoxColumn1 и dataGridViewTextBoxColumn2 являются столбцами dataGridBranches.
    А ты пытаешься их использовать для сортировки dataGridSpec.

    Решение:
    Для сортировки используй столбцы из dataGridSpec.
    Ответ написан
    Комментировать
  • Какие языки есть для связки unity приложения с БД?

    @SlNik
    Как вариант можешь использовать C# LINQ:
    https://docs.microsoft.com/ru-ru/dotnet/framework/...
    Ответ написан
    Комментировать
  • Как проверить данные из ListBox в C#?

    @SlNik
    Вот держи подробный пример:
    5e72cbf138db3660054365.png
    namespace TestWindowsForms
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                SourceList.Items.Clear();
                using (OpenFileDialog ofd = new OpenFileDialog() { Filter = "Text Documents(*.txt)|*.txt", ValidateNames = true, Multiselect = false })
                {
                    if (ofd.ShowDialog() == DialogResult.OK)
                    {
                        string[] lines = { "sdfs", "sdfesd", "dfefgse" };
    
                        // Если List<string> не используешь убери
                        List<string> list = new List<string>();
                        list.AddRange(lines);
    
                        SourceList.Items.AddRange(lines);
                        Count_label.Text = SourceList.Items.Count.ToString();
    
                        // Избавляемся от не нужноно нам цикла
                        //foreach (string IPAddr in lines)
                        //{
                        //    list.Add(IPAddr);
                        //    SourceList.Items.Add(IPAddr);
                        //    Count_label.Text = SourceList.Items.Count.ToString();
                        //}
                    }
                }
            }
    
            public void TestingIp()
            {
                object delItem = null;
                foreach (var item in SourceList.Items)
                {
                    // Тут делаешь всё что тебе вздумается
    
                    // Получаем текст элемента
                    string textItem = SourceList.GetItemText(item);
    
                    // Хотим удалить определённый элемент
                    if (textItem == "sdfs")
                        delItem = item;
                }
    
                // Удаляем 
                SourceList.Items.Remove(delItem);
    
            }
    
            private void button_Click(object sender, EventArgs e)
            {
                TestingIp();
            }
        }
    }
    Ответ написан
  • Где лучше хранить файлы сериализации?

    @SlNik
    Желательно сохранять в папку где обычно не требуются права администратора, допустим в мои документы:
    Environment.SpecialFolder.Personal
    Ответ написан
    2 комментария
  • Как сделать привязку к свойству другого класса?

    @SlNik
    Возможно такой способ тебе подойдёт:
    1 - Измени private на public у метода ExecuteChangeMethodName
    2 - Приведение типов делай не к string, а к radiobuttons
    3 - В параметры передавай тот radiobuttons которому нужно изменить Name
    MainViewModel DataContext = new MainViewModel();
                Button button = new Button();
                button.Name = "Имя №1";
                DataContext.MethodViewModel.ExecuteChangeMethodName(button);
    
      public void ExecuteChangeMethodName(object parameter)
            {
                Button button = (Button)parameter;
                button.Name = "Новое имя";
            }
    Ответ написан
    Комментировать
  • Как лучше передавать данные между тестом и конструктором тестов?

    @SlNik
    Как вариант можешь использовать XML сериализацию:
    На "Конструкторе тестов":
    1 - Создаешь класс(ы) в котором(ых) описываешь все поля что хочешь сохранять. Сам класс и поля должны быть public.
    2 - Класс помечаешь атрибутом [Serializable]
    3 - Создаешь экземпляр класса, заполняешь его
    4 - Делаешь сериализацию

    На приложении "Тест"
    1 - Копируешь созданный класс(ы) для "Конструкторе тестов" в этот проект
    2 - Создаешь экземпляр этого класса и делаешь дисериализацию данных.

    Пример:
    using System;
    using System.Collections.Generic;
    using System.IO;
    using System.Xml.Serialization;
    
    namespace Лямбда_Выражения
    {
        class Program
        {
            static void Main(string[] args)
            {
                Data data = new Data();
                Test test = new Test();
                Question question = new Question();
                Answer answer = new Answer();
                Answer answer2 = new Answer();
    
                question.ТекстВопроса = "Сколько будет 2+2 ?";
                answer.ТекстОтвета = "5";
                answer.ОтветВерный = false;
                answer2.ТекстОтвета = "4";
                answer2.ОтветВерный = true;
                question.Ответы.Add(answer);
                question.Ответы.Add(answer2);
    
                test.Вопросы.Add(question);
                test.ДатаВремяСоздания = DateTime.Now;
                test.Название = "Тест на знание математики";
                test.Создатель = "SlNik";
    
                data.Тесты.Add(test);
                data.Сохранить();
                Console.ReadKey();
            }
        }
    
        [Serializable]
        public class Answer
        {
           public string ТекстОтвета { get; set; }
           public bool ОтветВерный { get; set; }
        }
    
        [Serializable]
        public class Question
        {
            public Question()
            {
                Ответы = new List<Answer>();
            }
            public string ТекстВопроса { get; set; }
            public List<Answer> Ответы { get; set; }
        }
    
        [Serializable]
        public class Test
        {
            public Test()
            {
                Вопросы = new List<Question>();
            }
            public string Название { get; set; }
            public string Создатель { get; set; }
            public DateTime ДатаВремяСоздания { get; set; }
            public List<Question> Вопросы { get; set; }
        }
    
        [Serializable]
        public class Data
        {
            public List<Test> Тесты;
            public string Patch = Path.Combine(Environment.CurrentDirectory, "Data.xml");
            public Data()
            {
                Тесты = new List<Test>();
            }
            public Data(string patch = null)
            {
                Patch = patch;
                if (Patch == null)
                    Patch = Path.Combine(Environment.CurrentDirectory, "Data.xml");
    
                if (File.Exists(Patch))
                    Загрузить(Patch);
            }
            public void Загрузить(string patch)
            {
                XmlSerializer formatter = new XmlSerializer(typeof(Data));
                using (FileStream fs = new FileStream(patch, FileMode.OpenOrCreate))
                {
                    Data data = (Data)formatter.Deserialize(fs);
    
                    Console.WriteLine("Данные с тестами загружены");
                    Console.WriteLine("Кол-во тестов:{0}", data.Тесты.Count);
                }
            }
            public void Сохранить(string patch = null)
            {
                if (patch == null)
                    patch = Patch;
                XmlSerializer formatter = new XmlSerializer(typeof(Data));
                using (FileStream fs = new FileStream(patch, FileMode.Create))
                {
                    formatter.Serialize(fs, this);
                    Console.WriteLine("Объект сериализован");
                }
            }
    
    
        }
    }


    Если в приложение "Тест" будут работать большое кол-во пользователей с разных ПК используй базу данных.
    Ответ написан
    1 комментарий