diablo22 Ответов: 1

Vb.net общественные строк


Привет
Мне трудно создавать публичные строки, которые я могу использовать во всех формах

Я пытаюсь с модулем сделать это:
Imports Nini.Config
Imports System.IO

Public Module Settings

    Public MyConfigFile As String = ".\Settings.ini"
    Public MyVNCFile As String = ".\Create.vnc"
    Public BackUPFolder As String = ".\BackUP"
    Public VNCFolder As String = ".\VNC"
    'Read Source File
    Public source As New IniConfigSource(MyConfigFile)
    'Read Strings From File
    Public fileName As String = source.Configs("Update").Get("Url")
    Public columns As String = source.Configs("Update").Get("Info")

End Module


и когда я использую в Form1 строки я получил режим отладки но ничего не отображаю просто показываю что он не читает строку правильно:
Пример:
Public Sub CheckFolders()
        'Dim Path As String = ".\BackUP"
        'Dim Path2 As String = ".\VNC"

        If Not Directory.Exists(Settings.BackUPFolder) Then
            Directory.CreateDirectory(Settings.BackUPFolder)
        End If
        If Not Directory.Exists(Settings.VNCFolder) Then
            Directory.CreateDirectory(Settings.VNCFolder)
        End If

    End Sub

Но это крах, есть идеи, как сделать эти строки правильными?

Что я уже пробовал:

Пробовал с модулем создать его, пример находится сверху, но он падает, похоже, что он не имеет никакого значения, установленного в этой строке, я не знаю почему, может кто-нибудь сказать мне, как сделать это правильно или где я ошибаюсь.?

Richard MacCutchan

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

diablo22

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

diablo22

может быть, я идиот...
Public Sub CreateMe()
Dim source как новый IniConfigSource(MyConfigFile)
'Чтение Строк Из Файла
Dim fileName As String = source.Configs("Update").Get("Url")
Тусклые столбцы в виде строки = источник.Конфиги("Обновление").Вам("Информация")
Конец Подводной Лодки
Теперь это делает строки читаемыми правильно...

1 Ответов

Рейтинг:
2

CHill60

Вы можете использовать методы, описанные в разделе Наилучшая практика для совместного использования переменных между формами в VB.NET - переполнение стека[^]

Но лично я нахожу серию советов OriginalGriff более полезной Передача информации между двумя формами, Часть 1: Родитель-Ребенок[^] - они есть в C#, но принципы все еще остаются в силе


diablo22

я сею эту тему, но она не описывает, как я могу сделать ее модулем для хранения всего материала внутри.
в c++ легко передавать строки, но на vb.net я не знаю, как это сделать с модулем.
Для меня мой код должен работать, но это не так, потому что он почему-то застрял на этом при отладке "настройки.BackUPFolder" выглядит так, как будто не может прочитать текст строки

CHill60

Первая ссылка содержит ответ "храните свои глобальные переменные в файле Module1.vb, они должны быть публично объявлены, чтобы быть доступными из всех форм:"
Ваш код использует Settings.BackUPFolder - это тот тип обозначения, который вы бы использовали, если бы Settings являться классом. Попробуйте использовать просто BackUPFolder и VNCFolder вместо

Rajeev Panday

Остыньте, пожалуйста, не обескураживайте опа, просто добавляя ссылки ссылки, которые в любом случае он также может выпучить глаза и узнать это. какой смысл спрашивать в этой фуре, если конечный ответ идет по какой-то ссылке.. пожалуйста, проявите некоторое уважение к кодеру, который учится. он дал так много кода, что это означает, что он сделал достаточно фоновой работы и т. д.

phil.o

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

CHill60

Спасибо за вашу поддержку

Rajeev Panday

смотрите еще раз, я не получил свой ответ здесь:), и вы опубликовали еще один вопрос ко мне, что я буду anser позже, если OP не получит конкретного ответа в этом fouram, то они найдут другой форум, чтобы задать свой вопрос. следовательно, это обязанность человека, который отвечает на вопрос с подробностями, он не должен просто отвечать на все, что не имеет смысла для ОП.

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

phil.o

Наш единственный "долг" - стараться помочь как можно лучше. Если это включает в себя предоставление ссылки на статью, которая уже объясняет всю или часть проблемы, то так тому и быть. Это форум быстрых ответов, как таковой он может быть неуместен для очень длинных объяснений, особенно когда эти объяснения уже существуют где-то в другом месте.

CHill60

Нет, вы не видели, чтобы я опускал людей, которые не добавляют ссылок. Возможно, вы видели, как я комментирую, как можно улучшить решения, но никто, кроме администратора сайта, не может "видеть", кто кого понизил.
Как отметил Фил.о, обе ссылки, которые я дал, включали инструкции о том, как делиться переменными между формами, поэтому я не собирался а) печатать весь ответ снова или б) утверждать чьи - то чужие идеи и работать как свои собственные.
ОП вернулся ко мне по поводу решения, и я отвечу на них с дальнейшей помощью - вот как работает этот форум

diablo22

уже пробовал без имени класса или по умолчанию, результат был тот же.
К моему несчастью, он не очень хорошо работает в vb.net как мне нужно, так мне нужно представить везде руководство Дима и читает. Или я не могу найти лучшего решения для этой странности. В c++ таких проблем нет, но я учусь дальше vb.net теперь как хобби для меня. Буду искать больше если найду решение напишу его здесь