Nishisansi Ответов: 1

Как отобразить вывод C# в windows form richtextbox?


У меня есть файл C#, который отображает вывод в окне вывода. и я создал форму Windows с richtext Box.
Я хочу в C# вывод в richtextbox, когда форма загружается.
Как это сделать?

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

Вот мой файл C# :
class JsonMain
   {
     public void JsonArr()
       {

           using (var webClient = new System.Net.WebClient())
           {
               string json = webClient.DownloadString("http://www.mywedjat.com/services/apis/get_doctor?id=2http://www.mywedjat.com/services/apis/login_api?email=darwin@mail.com&password=123456&mobile_type=ios&UDID=3454543");



               Console.WriteLine("-------------------------------------------------------------------------------------------");

               JObject json1 = JObject.Parse(json.ToString());
            // Console.WriteLine(json1);
               var tmp = JsonConvert.DeserializeObject<RootObject>(json);
               var successes = tmp.status.success;
               var specialityObjects = successes.Select(success => success.Speciality).ToList();
               var users = successes.Select(success => success.User).ToList();
               Console.WriteLine("-------------------------------------------------------------------------------------------");

               Console.WriteLine("Name: " + users[0].username + "\n" + "Email: " + users[0].email + "\n" + "Qualification: " + users[0].qualification + "\t");
               Console.WriteLine("-------------------------------------------------------------------------------------------");

               Console.WriteLine("Name: " + users[1].username + "\n" + "Email: " + users[1].email + "\n" + "Qualification: " + users[1].qualification + "\t");
               Console.WriteLine("-------------------------------------------------------------------------------------------");

               Console.WriteLine("Name: " + users[2].username + "\n" + "Email: " + users[2].email + "\n" + "Qualification: " + users[2].qualification + "\t");

               //Console.WriteLine(users[1].id + " " + users[1].username);
               //Console.WriteLine(users[2].id + " " + users[2].username);

               //Console.WriteLine(tmp.status.success[0].User);
               Console.WriteLine("-------------------------------------------------------------------------------------------");


               Console.ReadLine();
           }

       }


   }

1 Ответов

Рейтинг:
1

OriginalGriff

Вместо того, чтобы использовать консоль.WriteLine, создайте StringBuilder и используйте метод AppendLine, чтобы добавить к нему свой текст.
Затем вы можете сделать это:

myRichTextBox.Text = myStringBuilder.ToString();


Nishisansi

Это не работает.
созданный stringbuilder как:

Проверьте новое окно инструментов("имя:" + пользователей[0].логин + "\п" + "электронной почты:" + пользователей[0].почта + "\п" + "квалификация:" + пользователей[0].квалификация + "\Т");

и назвал этот файл:
открытый form1()
{
метод InitializeComponent();

JsonMain jm = новый JsonMain();
richtextbox1 отображение.Текст = СБ.Метод toString();

}
показывает ошибки в СБ

OriginalGriff

Где вы создали StringBuilder и какую ошибку получили?

Nishisansi

Создал stringBuilder в файле C#. и назвал его в Windows form Code behind.

OriginalGriff

Вы предполагаете, что я могу видеть ваш экран?
Потому что не могу. Так что, если вы не скажете мне, что вы сделали таким образом, чтобы я точно понял, что вы сделали, я не смогу вам помочь, и больше, чем гараж может помочь вам, если вы сломаетесь посреди нигде и просто закричите "помогите!" по телефону на них.

Так помоги же мне здесь! Покажите мне, где вы создаете StringBuilder, где вы его используете и какую ошибку получаете!

Nishisansi

Это мой файл. cs:

класс JsonMain
{


общественного недействительными JsonArr()
{

использование (var webClient = new System. Net.WebClient())
{
строка json = webClient.DownloadString("http://www.mywedjat.com/services/apis/get_doctor?id=2http://www.mywedjat.com/services/apis/login_api?email=darwin@mail.com&password=123456&mobile_type=ios&UDID=3454543");
JObject json1 = JObject. Parse(json.Метод toString());
var tmp = JsonConvert.DeserializeObject< rootobject> (json);
ВАР успехов = ТМП.статус.успех;
var specialityObjects = успехи.Выберите (success = & gt; success.Специальность).Список();
var users = успехи.Выберите (success = & gt; success.Пользователь).Список();
Проверьте новое окно инструментов("имя:" + пользователей[0].логин + "\п" + "электронной почты:" + пользователей[0].почта + "\п" + "квалификация:" + пользователей[0].квалификация + "\Т");
То StringBuilder сб1 = новое окно инструментов("имя:" + пользователей[1].логин + "\п" + "электронной почты:" + пользователей[1].почта + "\п" + "квалификация:" + пользователей[1].квалификация + "\Т");
То StringBuilder кнопку SB2 = новое окно инструментов("имя:" + пользователей[2].логин + "\п" + "электронной почты:" + пользователей[2].почта + "\п" + "квалификация:" + пользователей[2].квалификация + "\Т");
Приставка.Линия чтения();
}

}


}
В windows form я просто перетащил форматированное текстовое поле. и код за этой формой стоит.

пространство имен JsonForm
{

общественности частичного класс form1 : форма
{

открытый form1()
{
метод InitializeComponent();
JsonMain jm = новый JsonMain();
ДМ.JsonArr();
richtextbox1 отображение.Текст = ДМ.СБ.Метод toString();


}
}
и ошибка такова: JsonMain не содержит определения для 'sb', и ни один метод расширения 'sb', принимающий первый аргумент типа 'JsonMain' , не может быть найден(вы пропускаете директиву using?)

OriginalGriff

Давайте вернемся к основам, не так ли?
Что вы помните о "правилах сферы действия"? В частности, где вы можете получить доступ к локальной переменной?
Это:
1) в любом месте всей программы!
2) нигде вообще, локальные переменные никогда не могут быть доступны по коду и существуют только для украшения и для того, чтобы выглядеть красиво!
Или
3) только в пределах метода, в котором он был объявлен?

Подсказка: подумайте о числах, которые больше 2.

Почему бы не вернуть значение из вашего метода вместо void? Подсказка: вы могли бы вернуть что-то полезное ... - Не знаю ... может быть... веревочка была бы хороша?

Nishisansi

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

OriginalGriff

Изучение основ - очень хорошая идея-если вы не понимаете их хорошо, более продвинутые вещи не имеют смысла, и вы получаете проблемы, подобные этой. Немного похоже на вождение автомобиля: если вы не знаете, как его завести и переключить передачу, сломать и так далее, нет большого смысла разрабатывать лучший способ езды между двумя городами на Ferrari! :смеяться: