Ответы пользователя по тегу Windows Forms
  • WinForms не подхватывает впн, почему?

    mindtester
    @mindtester Куратор тега C#
    https://www.youtube.com/watch?v=Dn9_ogWhk9s
    в дополнение к ответу TheAndrey7, в качестве системного vpn, можете опробовать ProtonVPN
    одна из приятных фишек - можно не сажать на тормоза всю систему, а указать конкретные приложения (браузеры на выбор, а так же ваше приложение)
    Ответ написан
  • Как обработать неправильный ввод в textbox?

    mindtester
    @mindtester Куратор тега C#
    https://www.youtube.com/watch?v=Dn9_ogWhk9s
    Ответ написан
    Комментировать
  • Почему Windows Forms берет ошибки из неоткуда?

    mindtester
    @mindtester Куратор тега C#
    https://www.youtube.com/watch?v=Dn9_ogWhk9s
    с 22 ток начинаю.. но вообще то вам все подсказывают
    2JZLpDu.png
    Ответ написан
    Комментировать
  • Как автоматически заполнять проводник который открывается в браузере через C#?

    mindtester
    @mindtester Куратор тега C#
    https://www.youtube.com/watch?v=Dn9_ogWhk9s
    rundll32, ни каких js-инъекций тут не светит. вам придется осваивать winapi без вариантов - перехватывать хендл окна стандартного системного диалога выбора файлов, путем поиска как дочернего от окна браузера (или контрола браузера в винформе)

    после чего, можно вполне цивильно вписать там нужный путь. но опять на уровне работы с winapi, и окнами в низкоуровнем смысле операционной системы

    кода надо немного, и он будет не особо сложный. но придется пройти ощутимое расширение эрудиции в теме winapi
    Ответ написан
    Комментировать
  • Как подсветить элемент ToolStripMenuItem определённым цветом при наведени?

    mindtester
    @mindtester Куратор тега C#
    https://www.youtube.com/watch?v=Dn9_ogWhk9s
    вам нужны не свойства а события, для начала вот эти два
    Control.MouseHover
    Control.MouseLeave
    Ответ написан
    Комментировать
  • Одна кнопка почему-то всегда выделана Как убрать в windows forms выделение одной кнопки среди остальных. кнопок?

    mindtester
    @mindtester Куратор тега C#
    https://www.youtube.com/watch?v=Dn9_ogWhk9s
    на форме всегда какой то элемент в фокусе
    пока вы не разберетесь в теме, этот может казаться хаосом, когда разберетесь - начнете управлять
    допустим:
    https://docs.microsoft.com/ru-ru/dotnet/framework/...
    https://docs.microsoft.com/ru-ru/dotnet/api/system...
    https://docs.microsoft.com/ru-ru/dotnet/api/system...
    https://docs.microsoft.com/ru-ru/dotnet/api/system...

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

    mindtester
    @mindtester Куратор тега C#
    https://www.youtube.com/watch?v=Dn9_ogWhk9s
    а в чем трудности?
    RichTextBox.Text точно RichTextBox.Rtf содержит текст в формате RTF то есть со всем оформлением и самим текстом. сохраняете как текстовую строку, и так же восстанавливаете
    Ответ написан
    Комментировать
  • Как связать ListBox со списком базы данных и показать значения в текстовом поле?

    mindtester
    @mindtester Куратор тега C#
    https://www.youtube.com/watch?v=Dn9_ogWhk9s
    попробуйте погуглить:
    - c# winforms binding
    (а так же)
    - c# winforms binding ListBox
    - c# winforms binding TextBox
    - c# winforms binding samples
    - c# binding MySql
    - c# binding MySql samples

    ps если после этого будут вопросы еще - приходите, попробуем разобраться
    Ответ написан
  • Как сделать что бы текст в label который находится в tabControl, можно было пролистывать только вниз, а по горизонтали нельзя?

    mindtester
    @mindtester Куратор тега C#
    https://www.youtube.com/watch?v=Dn9_ogWhk9s
    надо смотреть не на tabControl, в нем явно либо TextBox, либо RichTextBox
    у обоих есть свойство вроде ScrollBars
    при этом, вам надо помнить, что горизонтальный скрол появляется при наличии длинных строк
    вы готовы их игнорировать? или включить WordWrap? в культурных редакторах, такой режим как то обозначается. но в базовых контролах таких фишек нет. пользователь посто не поймет - это новая строка? или продолжение длинной строки?

    ps
    текст в label
    а у label скролов вообще не бывает
    Ответ написан
  • Как определить разницу во времени в миллисекундах между двумя слайдами анимации в среде C#?

    mindtester
    @mindtester Куратор тега C#
    https://www.youtube.com/watch?v=Dn9_ogWhk9s
    Выдает ошибку "Имя х не существует в данном контексте"
    правильно
    if (k == 7)
    {
            pictureBox1.Image = Resources._7;
            var x = DateTime.Now.ToString("ss:fff" );
    }
    // после этой фигурной скобки x уже не существует
    ps на подумать в чем разница
    var x = "";
    if (k == 7)
    {
            pictureBox1.Image = Resources._7;
            x = DateTime.Now.ToString("ss:fff" );
    }

    pps верно, еще про строки - для строк есть + но это склейка строк. в C# нет динамического преобразования типов (хотя бывает приведение типов по умолчанию, но далеко не всегда)
    вот полезная статья о то как можно замерять время на C# https://habr.com/ru/post/226279/
    Ответ написан
  • Как сделать кнопку "назад" в winforms C#?

    mindtester
    @mindtester Куратор тега C#
    https://www.youtube.com/watch?v=Dn9_ogWhk9s
    1 - сделать кнопку
    2 - выпилить дизайн
    3 - заточить код клика
    .. а вы как хотели?
    Ответ написан
  • Как получить код завершения программы?

    mindtester
    @mindtester Куратор тега C#
    https://www.youtube.com/watch?v=Dn9_ogWhk9s
    помедитировать 1
    using System;
    
    namespace ConsoleApp1
    {
        class Program
        {
            static int Main(string[] args)
            {
                  // по фиг что
                  returnt <что то int>;
            }
        }
    }
    Ответ написан
  • Как осуществить алгоритм поиска Фибоначчи?

    mindtester
    @mindtester Куратор тега C#
    https://www.youtube.com/watch?v=Dn9_ogWhk9s
    Eugene,
    Я просто не пойму как реализовать. Как написать код и как оно должно все выглядить. Вот в чем беда.
    возвращаемся к заданию
    Разработать программный модуль демонстрации сравнения работы алгоритмов поиска с помощью Фибоначчиева алгоритма и алгоритма по бору.
    вам надо выяснить что такое:
    - поиск с помощью Фибоначчиева алгоритма
    - поиск по бору
    - реализовать оба алгоритма
    - протестировать на показательном наборе входных данных
    - что от вас хотят в качестве сравнения, ни кто тут протелепатировать не может. минимум это сравнение быстродействия по времени исполнения и/или по количеству итераций
    - максимум, все это можно еще и визуализировать. как это может выглядеть можно посмотреть на визуализациях тех же алгоритмов сортировок. хотя скорее всего пункта выше вам хватит
    ps
    ни один из этих пунктов не может быть подсказан 2-3 предложениями и 5-10-15 строками кода. если не приложили собственных существенных усилий
    pps
    в частности основы WinForms точно надо освоить
    https://docs.microsoft.com/ru-ru/dotnet/framework/...
    https://metanit.com/sharp/windowsforms/1.1.php
    Ответ написан
  • Как реализовать браузер в desktop приложении?

    mindtester
    @mindtester Куратор тега C#
    https://www.youtube.com/watch?v=Dn9_ogWhk9s
    - ранее указанный CefSharp вероятно самый перспективный, учитывая тенденции на рынке браузеров
    - есть GeckoFx. Семплы под формс есть. Мне показалось порог вхождения ниже. Но (см выше) тенденции однако. А главное слишком редко обновляется. Сам фокс может успеть внести радикальные изменения в движок, пока проект выпустит обнову. Мне интересен тем, что накоплен приличный опыт переноса профилей фокса всего 7 или 8ю файлами
    - для потренироваться, новичкам вполне сгодятся WebBrowser/WebView (Forms/WPF). Зато «из коробки». Но это IE, увы. Есть еще WebView в UWP – это Edge, но там придется грызть XAML при чем все даже чуток мудренее чем просто в WPF. Но по большому счету и инфы навалом, и в магазине пачки демо приложений

    ps в закладках давно болтается еще и ChromiumFX ни чего не могу сказать о достоинствах и недостатках. но судя по датам обновлений, проект относительно активный, и не то что бы маргинальный
    Ответ написан
    Комментировать
  • Как изменить элемент из другого класса?

    mindtester
    @mindtester Куратор тега C#
    https://www.youtube.com/watch?v=Dn9_ogWhk9s
    1 - так и покажите где и как обявлен label2
    2 - и где, по отношению к ней, находится код, который пытается нзменить label2
    3 - приведите убедительные доказательства, что этот код кообще реально вызывается (да, и такие ошибки бывают. но тут достаточно break point в студии поставить)

    .. вам надо показать всю картину. по тому что по общему описанию, вы ловите проблему, которой действительно не должно быть в WinForms

    вольная фантазия - возможно вы повесили модификатор public на метод, который пытается изменить label2, но возможно умудрились label2 сделать недоступным. по дефолту визуального конструктора, он скоре всего так public, но может это вторичная фрма? которую вы всю всю сделали private?... (хотя тут и компилятор бы ругнулся..) тем не менее - без полной картины качественный ответ невозможн

    звиняйте экстрасенсы в отпуске (с) ))

    ps старый и слепой (((
    int score=0;
    label2.Text = "хоть что то";
    while (score <= 0) 
    {
                        score = textBox1.TextLength;
                        richTextBox1.Text += score;
                        if(score>0)
                        label2.Text = score.ToString();
    }


    это на 100% бесконечный цикл. он имеет шанс на выход, только в случае, если score имеет отрицательное значение. но...
    - мы имеем инициализацию int score=0;, мало того, изначальное инициализиреуем label2 не пустым значением, а это будет только подливать керосина в костер, но уже в теле цикла
    - далее бесконечно score = textBox1.TextLength; вот только это значение ни когда не может быть отрицательным (а судя по остальному коду цикла, даже вряд ли нулевым хоть когда либо)
    - и напомниню исловие цикла while (score <= 0) (то есть равенство нулю допустимо волею автора изначально) прервать эту вакханалию может только отрицтельное значение.. ну или break; по какому то осмысленному условию, которое реально может наступить в достаточно короткие сроки.. а не через годы, а то ведь бешатой собаке семь верст не круг (с)

    похоже что все у вас происходит, только название этому - зависание (по заумному - бесконечный цикл)
    Ответ написан
    5 комментариев
  • Как передать массив с одной формы в другую (c#)?

    mindtester
    @mindtester Куратор тега C#
    https://www.youtube.com/watch?v=Dn9_ogWhk9s
    если вы хотите работать с одними и теми же данными в разных формах, лучше что бы они существовали где то отдельно, возможно в качестве поля в главной форме, с типом:
    - массив для простого случая, далее по усложнению задачи
    - таблица данных https://docs.microsoft.com/ru-ru/dotnet/api/system...
    - база данных https://docs.microsoft.com/ru-ru/ef/

    а в гридах делать биндинг. тагда все экземпляры datagridview будут работать с одним источником, и даже отображать изменения, внесенные в другом гриде
    https://docs.microsoft.com/ru-ru/dotnet/framework/...
    https://docs.microsoft.com/ru-ru/dotnet/api/system...
    https://metanit.com/sharp/entityframework/3.1.php
    Ответ написан
    Комментировать
  • Есть ли замена Visual Studio для слабых ноутбуков на Windows 10?

    mindtester
    @mindtester Куратор тега Windows
    https://www.youtube.com/watch?v=Dn9_ogWhk9s
    1 - ну по чесноку и винформы и впф, можно писать в редакторе. но для этого надо их знать существенно по лучше новичка (не верится? XAML - текстовка, и попробуйте вчитаться и осмыслить файлы форм, генереные дизайнером форм
    упорство и труд, все перетрут
    .. если сильно захотите)

    2 - лучший редактор на на замену VS - VS Code (если ваш ноут тянет Хром - потянет и VS Code upd если Хром уже тяжело - notepad++ для подсветки синтаксиса и голые SDK, уже можно творить)

    ps люди на F# пишут винформовские и WPF приложения.. как? ведь дизайнеры студии поддерживают только C# и VB ;))... просто - ручками. берут и пишут. погуглите, поищите на github

    .. ну а там глядишь, может и на апгрейд заработаете. хотя подработку можно найти не только в области ИТ. это же вопрос желания и упорства.. кто то упирается рогом, и покупает машину, или даже квартиру.. а тут ноут ;))
    Ответ написан
    Комментировать
  • Как организовать взаимодейтсвие двух форм ввода данных с третьей формой-справочником?

    mindtester
    @mindtester Куратор тега C#
    https://www.youtube.com/watch?v=Dn9_ogWhk9s
    по фрагментам:
    1 - тут вы создаете форму в локальной переменной form и отображаете как диалог. модально кстати, а не модельно.. если слово смущает, просто нагуглите модальное окно ))
    2 и 3 - финт с var frm = this.Owner; избавляет от незнания переменной, указывающей на экземпляр класса. но именно тут и возникает ваша проблема

    решения:
    - попробуйте рассматривать переменные главного окна, как глобальные, по отношению ко всем порождаемым окнам/диалогам. тогда можно применить другой финт - описать в классе главного окна (здесь видимо frmLScheta) поля форм нужных типов (допустим frmSprStreet SprStreet). и пользоваться ими вместо локальных переменных. получится что то вроде
    var frm = (this.Owner as frmLScheta).SprStreet;
    но такой прием требует обязательной проверки на SprStreet на null
    - более классический прием состоит в создании своего конструктора для дочерних форм (да вообще чего угодно), куда можно передавать и нормально типизированное значение главной формы, и сколь угодное количество смежных форм. естественно в классе должны быть предусмотрены соответствующие типизированные поля, куда конструктор и сохраняет эти значения (указатели по существу). проверка на null так же обязательна. ее можно выполнять в конструкторе, но надежнее в каждом методе, где такой указатель используется.

    ps

    1 - слышали понятие best practices?.. так во у вас bad practices.. попробуйте открыть 2 экземпляра frmSprStreet и работать параллельно. ну и быстро все поймете
    2
    Ничего не понял
    выходит лукавите. поняли, но не очень удачно. при этом удаляете свой камент. да еще и медальку вешаете себе - тройное лукавство. фу
    Ответ написан
  • C# WindowsForm как вывести элементы из массива в TextBox без повторений?

    mindtester
    @mindtester Куратор тега C#
    https://www.youtube.com/watch?v=Dn9_ogWhk9s
    char[] m = default;
    // что означает вообще null
    // где то чем то заполняем m
    var m2 = m.Distinct();
    // m2 будет иметь тип IEnumerable<char> и содержать только уникальные элементы
    // если нужен массив, тогда так
    var m2 = m.Distinct().ToArray();
    // если нужен лист, тогда так
    var m2 = m.Distinct().ToList();
    // исходный m тоже может быть и List и IEnumerable, будет работать для любого варианта
    Ответ написан
    Комментировать