Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Microsoft .NET

  Все выпуски  

RFpro.ru: Microsoft .NET


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный ХОСТИНГ на базе Linux x64 и Windows x64

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты по данной тематике

Асмик Гаряка
Статус: Советник
Рейтинг: 10932
∙ повысить рейтинг »
Micren
Статус: Профессор
Рейтинг: 1763
∙ повысить рейтинг »
Александр Чекменёв
Статус: Профессор
Рейтинг: 1211
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И СОФТ / Программирование / Microsoft .NET : C#

Номер выпуска:237
Дата выхода:11.11.2012, 14:30
Администратор рассылки:Alexey G. Gladenyuk (Управляющий)
Подписчиков / экспертов:63 / 25
Вопросов / ответов:3 / 7

Консультация # 166516: Здравствуйте! Самостоятельно изучаю Visual Basic 2008. Возникло пара вопросов: 1) На форме есть две группы Textbox'ов (но не только одни они). При загрузке формы одна группа заполняется данными из файла а в другую пользователем вносятся новые данные. Все это высчитывается и новые данные сохраняются опять в файл. В VB6 Textbox'ы заполн...


Консультация # 170426: Всем доброго времени суток. Надеюсь, что кто-нибудь поможет решить мою проблему. Сейчас занимаюсь написанием клиента для API Яндекс.Директ. API представляет из себя web-сервис. Для использования его из программы необходимо авторизация с помощью выданного набора файлов - cert.crt, private.key, cacert.pem. В VS2008 я добавил Web Reference, указав пут...
Консультация # 76472: Уважаемые эксперты. Делаю первые шаги в освоении си шарп и фрэймворк. Нужна помощь. Как обратиться к компонентам на форме из класса, находящегося вне класса формы, но в том же пространстве имен? Допустим, есть форма, на ней есть компонент textbox1 namespace WindowsApplication { public partial class Form1 : Form {<...

Консультация # 166516:

Здравствуйте! Самостоятельно изучаю Visual Basic 2008. Возникло пара вопросов:
1) На форме есть две группы Textbox'ов (но не только одни они). При загрузке формы одна группа заполняется данными из файла а в другую пользователем вносятся новые данные. Все это высчитывается и новые данные сохраняются опять в файл.
В VB6 Textbox'ы заполнял в цикле, к примеру вот так:

For i = 1 To 16
Textbox(i).Text = x
Next i

В VB2008 это не проходит, там вроде надо как-то через коллекции. Как это сделать?

2) Как прочитать строки из файла ресурсов и присвоить значения переменным (опять же, в цикле)?
Заранее спасибо.

Дата отправки: 05.05.2009, 14:44
Вопрос задал: Mr.grey
Всего ответов: 2
Страница онлайн-консультации »


Консультирует Hankir:

Здравствуйте, Mr.grey!
За место TextBox(i).Text = x используй list.Add(""); Где переменная list - это List<String> list = new List<String>(); Затем после цикла сделай так: textBox1.Lines = list.ToArray();

В итоге код будет похож примерно на этот:
List<String> list = new List<String>();
for (Int32 i = 1; i <= 16; i++)
list.Add(i.ToString());
textBox1.Lines = list.ToArray();

Код на C#, но думаю не составит труда переправить на Visual Basic, причём свойство textBox1.MultiLine должно иметь значение true;

Консультировал: Hankir
Дата отправки: 05.05.2009, 14:59

5
Спасибо. Но это вроде как "много строк записать в один TextBox", а мне нужно "по одной строке в каждый". Другими словами: как в цикле перебрать все TextBox'ы ?
-----
Дата оценки: 01.01.2008, 00:00

Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует DrakoN:

Здравствуйте, Mr.grey!
Ваши текстбоксы должны находиться внутри одного контрола (групбокса или формы), тогда этот метод действенен и прост. В остальных случаях решения существуют но ввиду сложности писывать не стану.

Итак. Ваш старший контрол имеет свойство "Сontrols" - которое возвращает коллекцию всех контролов которые в нем содержаться. Можно использовать фильтр по типу

Код :
If
( typeof(Controls(i)) == typeof(TextBox))


Можно по имени
Код :
if (Controls(i).Name.Contains("txt"))


Далее у каждого из них в конце может быть число.
И скажем следующая коснтрукция для полной идентификации.

Код :
Convert.ToInt32(Сontrols(i).Replace("txtinput",""))


позводит получить его уникальный идентификатор.


Есть альтернатива у каждого контрола есть свойство Tag. Забейте его ключами например "key1, key2"...итд...

и далее
Код :
foreach (Control CL in ParentControl.Controls)
Switch CL.Tag
   case: "key1"
...



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

Удачи

Консультировал: DrakoN
Дата отправки: 05.05.2009, 18:27

5
нет комментария
-----
Дата оценки: 01.01.2008, 00:00

Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 170426:

Всем доброго времени суток. Надеюсь, что кто-нибудь поможет решить мою проблему. Сейчас занимаюсь написанием клиента для API Яндекс.Директ. API представляет из себя web-сервис. Для использования его из программы необходимо авторизация с помощью выданного набора файлов - cert.crt, private.key, cacert.pem. В VS2008 я добавил Web Reference, указав путь к WSDL-файлу API. Сгенерировался класс YandexAPIService : System.Web.Services.Protocols.SoapHttpClientProtocol.

Пример из документации на PHP выглядить так:

Код :
<?php
authtype = 'certificate';
$client->decode_utf8 = 0;
$client->soap_defencoding = 'UTF-8';
$client->certRequest['sslcertfile'] = 'путь_к_cert.crt';
$client->certRequest['sslkeyfile'] = 'путь_к_private.key';
$client->certRequest['cainfofile'] = 'путь_к_cacert.pem';
$client->call("method");
..
?>


Пример работает, информацию получить могу. А вот на C# не знаю как это сделать. Нашёл только свойство ClientCertificates. Попробовал так:

api.ClientCertificates.Add(new X509Certificate2(@"путь_к_cert.crt"));

Но это не помогло, при запросе к сервису ловлю эксепшн "The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel.".
Что ещё нужно сделать, где указать оставшиеся файлы - .key, .pem?
Заранее благодарю за помощь.

Дата отправки: 14.07.2009, 13:57
Вопрос задал: Драк Георгий
Всего ответов: 1
Страница онлайн-консультации »


Консультирует Зарубин Дмитрий Сергеевич:

Здравствуйте, Драк Георгий!
Посмотрите в классе (объект - $client) реализацию передачи на сервер файлов (переменных) $sslcertfile $sslkeyfile $cainfofile. Скорее всего, файлы просто считываются и передаются POST/GET запросом вида sslcertfile=CONTENT_FILE&sslkeyfile=CONTENT_FILE&cainfofile=CONTENT_FILE (CONTENT_FILE - содержимое файла).
Если разобраться не получиться, выложите, пожалуйста, описание класса.

Консультировал: Зарубин Дмитрий Сергеевич
Дата отправки: 14.07.2009, 14:15
Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 76472:

Уважаемые эксперты. Делаю первые шаги в освоении си шарп и фрэймворк.
Нужна помощь.
Как обратиться к компонентам на форме из класса, находящегося вне класса формы, но в том же пространстве имен?
Допустим, есть форма, на ней есть компонент textbox1

namespace WindowsApplication
{
public partial class Form1 : Form
{
public void method()
{
textbox1.text="bla-bla-bla" // здесь textbox1 виден
}
}

class myclass
{
public void method()
{
/* как обратиться к textbox1 здесь?
form1.textbox1, как в CBuilder не работает */
}
}

}

Заранее благодарен за ответы

Дата отправки: 19.02.2007, 18:18
Вопрос задал: Svanshe
Всего ответов: 4
Страница онлайн-консультации »


Консультирует Angel1:

У твоего textbox1 есть свойство Modifiers, отвечающее за доступ к компоненту. Ставишь его, например, public.

Консультировал: Angel1
Дата отправки: 19.02.2007, 18:28
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Лимп (Практикант):

Здравствуйте, Svanshe!
Когда ты в дизайнете кидаеш текст бокс он описывается как private.
Так же доступ с другой формы можно описать так:
Form1 f1 = new Form1();
f1.что - то = ***; самое главное чтоб стоял public

Консультировал: Лимп (Практикант)
Дата отправки: 19.02.2007, 18:43
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Grigory:

Здравствуйте, Svanshe!
А для чего Вам надо из класса обращаться к текстовому полю? Не проще ли передать значение свойства Text этого поля в метод класса для дальнейшей обработки? Например вот так:
public class myClass
{
public void myMethod(string x)
{
// а тут уже делаете все, что хотите с этим значением

}

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

Удачи!

Консультировал: Grigory
Дата отправки: 20.02.2007, 00:37
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Thread:

Здравствуйте, Svanshe!
Все дело в том, что контролы по умолчанию private. Но делать их public настоятельно не рекомендую. Просто напишите свойство. Например так:

namespace WindowsApplication
{
public partial class Form1 : Form
{

public TextBox TextBox1
{
get { return textbox1; }
}

public void method()
{
textbox1.text="bla-bla-bla" // здесь textbox1 виден
}
}

Если же Вами используется только свойство Text тбъекта textbox1, то можно написать вообще так:
namespace WindowsApplication
{
public partial class Form1 : Form
{

public string Text
{
get { return textbox1.Text; }
}

public void method()
{
textbox1.text="bla-bla-bla" // здесь textbox1 виден
}
}

Консультировал: Thread
Дата отправки: 20.02.2007, 21:53
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Оценить выпуск | Задать вопрос экспертам

главная страница  |  стать участником  |  получить консультацию
техническая поддержка  |  восстановить логин/пароль

Дорогой читатель!
Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались. Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора - для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение. Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал, который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом. Заходите - у нас интересно!
МЫ РАБОТАЕМ ДЛЯ ВАС!



В избранное