Nano Hash - криптовалюты, майнинг, программирование

Приложение для Windows

Как переменные могут быть переданы между Winforms? Пример идентификатора клиента

Спасибо

26.12.2008

Ответы:


1

Вы должны объявить общедоступную собственность в форме, к которой хотите перейти. Затем, после создания вашей новой формы, это простое назначение:

C#: MyOtherInstantiatedForm.CustomerID = CurrentCustomerID;

Вам нужно передать CustomerID в несколько форм? Как насчет другой информации о клиенте? Если вы предоставите больше информации, мы, вероятно, сможем предложить вам лучшее решение.

26.12.2008
  • вы не объявляете переменные общедоступными в парадигме OO, вы используете для этого свойства (принцип инкапсуляции) 26.12.2008

  • 2

    Здесь важно отметить, что форма — это не что иное, как класс C#. Если вы подумаете о Форме в этих терминах, ответ, вероятно, придет сам собой.

    По сути, у вас есть два варианта. Во-первых, нужно открыть свойство формы, для которой вы хотите передать данные. Это достойный метод, если ваша форма не зависит от передаваемых данных для функционирования.

    CoolForm myForm = new CoolForm();
    
    myForm.MyProp = "Hello World";
    myForm.ShowDialog();

    Второй вариант — передать данные через конструктор. Я предпочитаю этот подход, когда форма зависит от данных, чтобы функционировать. Я также склонен помечать конструктор без параметров как закрытый, чтобы убедиться, что форма правильно создана.

    CoolForm myForm = new CoolForm("Hello World");
    
    myForm.ShowDialog();

    Надеюсь, это поможет...

    26.12.2008
  • Другой подход, который я видел в прошлом, заключается в том, чтобы поместить данные в скрытый элемент управления в форме, а затем предоставить другой форме доступ к ним через свойства элемента управления. Не очень элегантно, но я, конечно, видел это несколько раз. 26.12.2008
  • Джим: Использование скрытой метки в форме в качестве общедоступной переменной хуже, чем неэлегантность, это непростительно дилетантство. Если ваши сотрудники используют этот хак для обмена состоянием между формами, переведите их в управление, где они больше не смогут нанести вред вашей кодовой базе. 26.12.2008
  • Я должен согласиться с Princess, что я настоятельно рекомендую вам не полагаться на скрытые элементы управления в форме. За исключением того, что я бы не рекомендовал их переводить в управление. Я боялся, что они превратятся в микроменеджеров и навяжут команде эти нелепые приемы. 26.12.2008

  • 3

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

    Form2 frm = new Form2(customerId);
    

    или как Джим обеспечил. Есть много способов получить значение, я предпочитаю конструктор, если от него зависит вторая форма.

    26.12.2008

    4

    Если CustomerID общедоступен:

    frmTwo.CustomerId = frmOne.CustomerId
    
    26.12.2008
  • спасибо, эта информация очень полезна, и я использую ее. 17.01.2009
  • Новые материалы

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

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..