TexBox, Uri & Classes - PullRequest
       26

TexBox, Uri & Classes

0 голосов
/ 08 марта 2012

Я использую Это для создания генератора файлов конфигурации, в другом проекте C # Form я добавляю ini Класс проекта генератора файлов конфигурации, создаю 2 невидимых textboxes и использую ReadValue проекта генератора Config для чтения URL, созданных ранее файлом Config; Этот проект использует Uri для загрузки файла, и я хочу, чтобы Uri был невидимым текстом текстового поля (это URL в файле конфигурации), но когда я делаю

IniFile ini = new IniFile("C:\\Config.ini");
TextBox1.Text= ini.IniReadValue("Config","Patch URL");

написать Uri (private Uri PatchLocation = new Uri(TextBox1.Text);) Говорит "Инициализатор поля не может ссылаться на нестатическое поле, метод или свойство 'Downloader.Form1.TextBox1'" . Что мне нужно сделать, чтобы Uri стал текстом TextBox? Надеюсь, кто-нибудь может мне помочь, потому что мне действительно нужно это сделать. Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 08 марта 2012

Вместо private Uri PatchLocation = new Uri(TextBox1.Text); попробуйте

private Uri PatchLocation
{
    get
    {
        return new Uri(TextBox1.Text);
    }
}

По сути, код, который вы сейчас используете, говорит: «когда я инициализирую этот объект Form1, установите PatchLocation на то, что я получаю из Textbox1», а это не то, что вам нужно - и компилятор не позволит вам это сделать в любом случае.

Код, который я дал, является свойством, что означает, что он не будет читать содержимое Textbox1 , пока вы не попытаетесь прочитать PatchLocation. Каждый раз, когда вы пытаетесь прочитать PathLocation, он будет анализировать значение из TextBox1.Text. Он выдаст исключение, если это значение не является допустимым URI в то время.

Редактировать : На самом деле, полностью прочитав ваш вопрос, вам будет гораздо лучше хотя бы удалить скрытое текстовое поле и использовать

private Uri PatchLocation
{
    get
    {
        IniFile ini = new IniFile("C:\\Config.ini");
        return ini.IniReadValue("Config","Patch URL");
    }
}

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

1 голос
/ 08 марта 2012

Вы включили необходимое пространство имен для класса IniFile?

using Ini;

Кстати, эта строка выглядит неправильно new Uri("TextBox1.Text").Изменить на new Uri(TextBox1.Text)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...