Модераторы: Partizan, gambit

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> "Ламерские" вопросы, задаем здесь элементарные вопросы 
:(
    Опции темы
Arun
  Дата 4.4.2008, 17:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 12.2.2008

Репутация: нет
Всего: нет



Люди, подскажите.
Гоняю в С#.NET пару дней.
Что в этом коде не так?

Код

using System;

namespace myNameSpace 
{

public class MyInteger {
    MyInteger(string a){
            inta = int.Parse(a);
    }
    private int inta;
    public int Inta {
        get {return inta;}
        set {if (value < 0) inta = 0; else inta = value;}
    }
}

public class Program {
    static void Main(string[] args)
    {

                        MyInteger mi = new MyInteger("34");

        Console.WriteLine(mi.Inta);
        Console.ReadKey();
    }
}
    
}


по идее на консоль должно быть выведено число 34.
Однако при компиляции идет ругань: 'myNameSpace.MyInteger' does not contain a constructor that takes '1' arguments (CS1729)
на строчку 

Код

MyInteger mi = new MyInteger("34");

PM MAIL   Вверх
v2v
Дата 4.4.2008, 17:16 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

Репутация: нет
Всего: 56



Код

public MyInteger(string a)



--------------------
PM   Вверх
Arun
Дата 4.4.2008, 17:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 12.2.2008

Репутация: нет
Всего: нет



v2v

Тьфу-ты, точно))) Приватный конструктор получился.
Спасибо!!!
PM MAIL   Вверх
Naom
Дата 7.4.2008, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 2.4.2008

Репутация: нет
Всего: нет



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

    private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
                 richTextBox1->Text=(richTextBox1->Text)+(textBox1->Text);
             }


усо разобрался сам =))) надо так:
Код

    private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
                 richTextBox1->Text=(richTextBox1->Text)+(textBox1->Text)+"\n";
                 textBox1->Text="";
             }


=)) но теперь появляецца вопрос, как при нажатии на кнопку Enter сробатывало тоже что и принажатии на буттон1?

Это сообщение отредактировал(а) Naom - 7.4.2008, 13:15
PM MAIL   Вверх
masterik
Дата 7.4.2008, 23:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 28.8.2006
Где: Остенд, Бельгия

Репутация: нет
Всего: нет



Цитата(Naom @  7.4.2008,  13:02 Найти цитируемый пост)
=)) но теперь появляецца вопрос, как при нажатии на кнопку Enter сробатывало тоже что и принажатии на буттон1?


Сделай button1 кнопкой по умолчанию для твоей формы
Код

form.AcceptButton = button1;


Для большей уверенности можно добавить
Код

textBox1.AcceptsReturn = false;

Хотя это значение по умолчанию

Если button1 нельзя определить как AcceptButton, то перехватывай textBox1.KeyPress (MSDN)

Не знаю возможно это в С++ или нет, но можно оптимизировать/упростить твой код:
Код

richTextBox1.Text += textBox1.Text + "\n";


Это сообщение отредактировал(а) masterik - 7.4.2008, 23:32
PM MAIL GTalk   Вверх
Naom
Дата 8.4.2008, 13:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 2.4.2008

Репутация: нет
Всего: нет



спс =) 
Код

this->AcceptButton = this->button1;


и эт тоже работает, немного добавил =)
Код

                 if (textBox1->Text->Length > 0)
                 {
                 richTextBox1->Text += textBox1->Text + "\n";
                 textBox1->Text="";
                 }


теперь было б хорошо если б я мог узнать время =)) чтоб перед текстом вставлялось время добавления текста в ричтекст бокс
PM MAIL   Вверх
masterik
Дата 8.4.2008, 14:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 28.8.2006
Где: Остенд, Бельгия

Репутация: нет
Всего: нет



Цитата(Naom @  8.4.2008,  12:15 Найти цитируемый пост)
теперь было б хорошо если б я мог узнать время =)) чтоб перед текстом вставлялось время добавления текста в ричтекст бокс 

Код

richTextBox1.Text += string.Format("{0}: {1}\n", DateTime.Now.ToString("t"), textBox1.Text);


DateTime.Now.ToString() @ MSDN - Формат даты, времени можешь выбрать сам.
PM MAIL GTalk   Вверх
Naom
Дата 8.4.2008, 15:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 2.4.2008

Репутация: нет
Всего: нет



На С++ эт выглидит так:

Код

    private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
                 if (comboBox1->Text->Length >0){
                    if (textBox1->Text->Length > 0)
                    {
                        richTextBox1->Text +=comboBox1->Text+" ("+DateTime::Now.ToString("HH:mm:ss")+"): " +textBox1->Text + "\n";
                        textBox1->Text="";
                    }
                 }
             }


эт у мя типа список пользователей =)))
Код

comboBox1->Text


может эт как-то можно оптимизировать? =)
PM MAIL   Вверх
masterik
Дата 8.4.2008, 16:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 28.8.2006
Где: Остенд, Бельгия

Репутация: нет
Всего: нет



Цитата(Naom @  8.4.2008,  14:02 Найти цитируемый пост)
может эт как-то можно оптимизировать? =) 

Единственное что могу посоветовать, собирай текст для добавления в RichTextBox с помощью StringBuilder.

Код

 if (comboBox1.Text.Length > 0 && textBox1.Text.Length > 0)
{
     System.Text.StringBuilder sb = new System.Text.StringBuilder();
     sb.Append(comboBox1.Text);
     sb.Append(" (");
     sb.Append(DateTime.Now.ToString("HH:mm:ss")); // Можно заменить на DateTime.Now.ToString("T", CultureInfo.InvariantCulture);
     sb.Append("): ");
     sb.Append(textBox1.Text);
     sb.AppendLine();
     richTextBox1.Text += sb.ToString();
     textBox1.Text = "";
}


При небольшом количестве изменений (добавлений в ричтекстбокс) разницы можешь и не почувствовать... но не забывай, что string в .NET является immutable типом!


Это сообщение отредактировал(а) masterik - 8.4.2008, 16:18
PM MAIL GTalk   Вверх
Naom
  Дата 8.4.2008, 17:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 2.4.2008

Репутация: нет
Всего: нет



гуд, срс за подсказку

Добавлено через 3 минуты и 42 секунды


а как при зАкрытии формы сохранить все не в одной строке... 

Код

            String^ fileName = "Log.txt";

            StreamWriter^ sw = gcnew StreamWriter(fileName);
            sw->WriteLine("Файл создан {0}",DateTime::Now);
            sw->WriteLine("Имя пользователя : {0}",comboBox1->Text);
            sw->WriteLine(richTextBox1->Text);
            sw->Close();

PM MAIL   Вверх
masterik
Дата 8.4.2008, 23:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 28.8.2006
Где: Остенд, Бельгия

Репутация: нет
Всего: нет



Вырезка из мсдн RichTextBox.Text Property:
Цитата

To display multiple lines of text in a RichTextBox, set the Multiline property to true. To read or set the text of a multiline text box, use the Lines property. The Text property does not return any information about the formatting applied to the contents of the RichTextBox. To get the rich text formatting (RTF) codes, use the Rtf property.


Тебе нужно либо использовать Lines, либо писать в файл с помощью RichTextBox.SaveFile
PM MAIL GTalk   Вверх
Naom
Дата 9.4.2008, 09:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 2.4.2008

Репутация: нет
Всего: нет



чтот до конца, не могу понять этот код

Код

    String* tempArray[] = new String*[richTextBox1->Lines->Length]; //<=== Эт нада в глобальных значениях написать да?
    tempArray = richTextBox1->Lines; //<=== эт я не понимаю =) 
 
    // Loop through the array and send the contents of the array to debug window.
    for(int counter=0; counter <= tempArray->Length;counter++) //<=== Эт типа пока коунтер меньше или равно длине арроу 
    {
       System::Diagnostics::Debug::WriteLine(tempArray[counter]); //<=== В дебагере пишет значения определенного номер арей
    }


Правильно? =)

П.С. Array, по русски то как будет? массив? список значений?

PM MAIL   Вверх
zackaz
Дата 10.4.2008, 19:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 31.3.2008

Репутация: нет
Всего: нет



Еще один ламерский: кто знает аналог sendkey, только для неактивного окна?
PM MAIL   Вверх
masterik
Дата 11.4.2008, 14:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 28.8.2006
Где: Остенд, Бельгия

Репутация: нет
Всего: нет



Цитата(zackaz @  10.4.2008,  18:51 Найти цитируемый пост)
кто знает аналог sendkey, только для неактивного окна? 


Код

public static class Win32
{
    public enum VK : int
    {
        DOWN = 0x28,
        UP = 0x26,
        LEFT = 0x25,
        RIGHT = 0x27
        // .....
    }
    public enum WM
    {
        KEYUP = 0x0101,
        KEYDOWN = 0x0100
        // .....
    }

    [System.Runtime.InteropServices.DllImport("user32.dll", SetLastError = true)]
    public static extern int SendMessage(IntPtr hWnd, WM Msg, int wParam, int lParam);
}


Пример использования:
Код

Win32.SendMessage(controlInstance.Handle, Win32.WM.KEYDOWN, (int)Win32.VK.UP, 0);
Win32.SendMessage(controlInstance.Handle, Win32.WM.KEYUP, (int)Win32.VK.UP, 0);

PM MAIL GTalk   Вверх
zackaz
Дата 11.4.2008, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 31.3.2008

Репутация: нет
Всего: нет



masterik, ты уж прости, но тут раздел програмирования дотнет, а не Win32 API!!!! Это я знаю и применяю когда програмирую на С++, а вот прямо сейчас мне необходимо, чтто бы все работало на разных конфигурациях, где есть дотнет или моно.
PM MAIL   Вверх
Google
  Дата 16.1.2019, 21:07 (ссылка)  





  Вверх
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0877 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.