Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Программирование в среде .NET (ASP.NET,ADO.NET) на C#/VB.NET

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162

Открыть новую тему     Написать ответ в эту тему

Lazy KoT



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
BaluBig, глазастый (;

Цитата:
Интересно, закончится ли когда-нибудь цикл
Закончится на Int32.MaxValue + 1, если checked не стоит, иначе будет OverflowException
 
Я так понял что нужно добавить n строк с цифрами до numericUpDown1.Value, хотя и тогда нужно int к object приводить.

Всего записей: 204 | Зарегистр. 10-09-2004 | Отправлено: 15:04 01-03-2009 | Исправлено: Lazy KoT, 15:05 01-03-2009
Monvid



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем привет=)
Вот такой ещё вопросик
 

Код:
 
for (int i = 0; i <=n-1; i++)
            {
                array_1[i] = Convert.ToInt32(this.dataGridView1.Rows[0].Cells[i].Value.ToString());
                MessageBox.Show(array_1[i].ToString());
               
            }
 

 
Почему на последнем круге фора (n-1- это последняя ячейка Грида) материться на то, что обьект ссылается на не сужествующую ячейку??? Хотя ячейка создана и записанно туда значение.....
Если по отдельности, в ручную, без фора доставать значение ячеек, то всё без проблем.......
короче, если n-2 то всё работает, но последнюю ячейку программа не учитыват, что и следовало ожидать =(((  
 
Добавлено:
По предыдущему моему посту.
Там вообще ход мысли не правильный. Я уже всё решил,всё работает.
Но огромное спасибо, за советы=)

Всего записей: 8 | Зарегистр. 07-11-2008 | Отправлено: 19:26 01-03-2009
BaluBig



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Monvid
Должно работать. Если все в порядке со значением переменной n. В данном случае я бы ее определил как
Код:
int n = dataGridView1.Rows[0].Cells.Count;
.  
Еще попридираюсь.
Код:
for (int i = 0; i <=n-1; i++)
стандартной записью цикла на n итераций является
Код:
for (int i = 0; i < n; i++)
Так, как написано у тебя, будет работать тоже, но чуть больше буков и поддерживать такой код сложнее.

Код:
Convert.ToInt32(this.dataGridView1.Rows[0].Cells[i].Value.ToString())
Преобразование Value в строку лишнее.

Всего записей: 404 | Зарегистр. 06-02-2004 | Отправлено: 19:50 01-03-2009
Monvid



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо=) Всё работает. не материт=) Определил n как Вы посоветовали, убрал ToString но....
Теперь значение последней ячейки в MessageBox показывает 0.....,что бы я туда не вводил...

Всего записей: 8 | Зарегистр. 07-11-2008 | Отправлено: 20:20 01-03-2009
BaluBig



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
Теперь значение последней ячейки в MessageBox показывает 0.....,что бы я туда не вводил...
Должно работать правильно. Вот код (ну что бы не вводить значения руками я их заполнил программно). На форме грид и кнопка.

Код:
 
        public Form1()
        {
            InitializeComponent();
 
            dataGridView1.Rows.Add();
            int n = dataGridView1.Rows[0].Cells.Count;
            for (int i = 0; i < n; i++) dataGridView1.Rows[0].Cells[i].Value = i + 1;
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            int n = dataGridView1.Rows[0].Cells.Count;
            int[] array_1 = new int[n];
 
            for (int i = 0; i < n; i++)
            {
                array_1[i] = Convert.ToInt32(this.dataGridView1.Rows[0].Cells[i].Value);
                MessageBox.Show(array_1[i].ToString());
            }
        }
 


Всего записей: 404 | Зарегистр. 06-02-2004 | Отправлено: 10:32 02-03-2009
V0lt



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Хотел сделать контрол на основе TexBox, но с нек. изменениями. Нужно сделать MaxLength = 8 и игнорировать все вводимые символы кроме цифр (думаю сделать через KeyPress).
Вроде просто, но раньше ничего подобного не делал и не въезжаю как надо (на все мои конструкции компилятор ругается )
Может кто примерчик подкинет?

Всего записей: 10492 | Зарегистр. 05-02-2003 | Отправлено: 19:09 02-03-2009
feor



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
V0lt
Как-то так:
 

Код:
    public class CoolTextBox : TextBox
    {
        public CoolTextBox()
        {
            base.MaxLength = 8;
        }
 
        protected override void OnKeyPress(KeyPressEventArgs e)
        {
            if (!char.IsNumber(e.KeyChar))
            {
                e.Handled = true;
            }
 
            base.OnKeyPress(e);
        }
    }

Всего записей: 164 | Зарегистр. 04-09-2005 | Отправлено: 20:20 02-03-2009
V0lt



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
feor
Спасибо!
буду разбираться...
 
И еще. Какое исключение, кроме TextChanged, срабатывает когда я делаю вставку посредством "Ctrl+V"? Мне нужно блокировать такую вставку если в вставляемом тексте содержатся буквы.

Всего записей: 10492 | Зарегистр. 05-02-2003 | Отправлено: 21:56 02-03-2009
feor



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
V0lt
Сорри, что придираюсь, но событие, а не исключение
 

Код:
    public class CoolTextBox : TextBox
    {
        private const int WM_PASTE = 0x0302;
 
        protected override void OnKeyPress(KeyPressEventArgs e)
        {
            if (!char.IsNumber(e.KeyChar) && e.KeyChar != (char)22)
            {
                e.Handled = true;
            }
 
            base.OnKeyPress(e);
        }
 
        protected override void WndProc(ref Message m)
        {
            if (m.Msg == WM_PASTE)
            {
                string pastedText = Clipboard.GetText().Substring(0, 8);
                int password;
                if (!Int32.TryParse(pastedText, out password))
                {
                    return;
                }
            }
 
            base.WndProc(ref m);
        }
    }

 
Логику реагирования на вставку можно реализовать получше, к примеру, найти в строке цифры и вставить только их. Здесь я просто беру первые 8 символов, и если это не число, то в текстбокс ничего не вставляется.
Еще в предыдущем примере условие проверки нажатой клавиши убивало сочетание Ctrl+V. Выделил жирным исправление (на всякий случай, Ctrl+X = (char)24).
 
P.S.: возможно, имеет смысл взглянуть в сторону стандартного контрола MaskedTextBox.

Всего записей: 164 | Зарегистр. 04-09-2005 | Отправлено: 23:23 02-03-2009 | Исправлено: feor, 23:25 02-03-2009
Lazy KoT



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Или воспользоваться стандартным NumericUpDown

Всего записей: 204 | Зарегистр. 10-09-2004 | Отправлено: 23:42 02-03-2009
V0lt



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
feor

Цитата:
Логику реагирования на вставку можно реализовать получше, к примеру, найти в строке цифры и вставить только их.

такого не надо
пока WndProc переделал вот так

Код:
private const int WM_PASTE = 0x0302;
protected override void WndProc(ref Message m)
{
    if (m.Msg == WM_PASTE)
    {
        string pastedText = Clipboard.GetText().Trim();
        int pastedValue;
        if (pastedText.Length > base.MaxLength || !Int32.TryParse(pastedText, out pastedValue))
        {
                return;
        }
    }
    base.WndProc(ref m);
}

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

Цитата:
P.S.: возможно, имеет смысл взглянуть в сторону стандартного контрола MaskedTextBox.

оно корявое... мне не так надо
В идеале хочется NumericUpDown, но выглядящий как TextBox. Но как оказалось на C# убрать стрелочки без глюков не получается
 
 

Всего записей: 10492 | Зарегистр. 05-02-2003 | Отправлено: 00:33 03-03-2009
GeoDim

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
У меня такой вопрос!
Пробую Nevron.
Как заставить активироваться нужному Nband, имя которого я чтилал из файла?
 

Код:
 
        Private Sub хриновина(ByVal Name)
            Dim a As NDockingPanel
            Dim b As NPanelBarUC
            Dim c As NPanelBar
            Dim d As NBand
 
            a = Form1.NDockManager.Panels(3)
            b = a.Controls(0)
            c = b.Controls(0)
 
            Dim Count As Integer = c.Controls.Count
            Dim i As Integer = 0
 
            Do While i < Count
                d = c.Controls(i)
                If d.Name = Name Then
 
 
                    'Тут хотел прописать активацию Nband в NPanelBar
                d.???????????????
                типа d.Select здесь неработает
 
                    Return
                End If
                i += 1
            Loop
        End Sub
 
 

 
P.S. Я неволшебник, только учюсь!

Всего записей: 3 | Зарегистр. 15-03-2006 | Отправлено: 02:58 03-03-2009
MishaDoom



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Доброго времени суток!!!
Люди помогите!!! У меня такая проблема:
Переставил ОС(ХР), соответственно с ним и Visual Studio 2005, после этого некоторые проэкты, которые работаю с SQL-ными база не компилируются. Выдает ошибку:
 
Error    1    'The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)'    D:\VS Projects\Копия (2) BlankiPolisovSQL\BlankiPolisov\LC    BlankiPolisov
 
Немогу разобраться. Может у кого была похожая проблема. Подскажите как это можно побороть, может где-то уже описывали похожую проблему.
Заранее благодарен.

Всего записей: 25 | Зарегистр. 29-10-2007 | Отправлено: 10:03 03-03-2009
Lazy KoT



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MishaDoom
Исключение полностью выложи.

Всего записей: 204 | Зарегистр. 10-09-2004 | Отправлено: 11:50 03-03-2009
MishaDoom



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Visual Studio cannot start debugging because the debug target 'D:\VS Projects\Копия (2) BlankiPolisov\bin\Debug\BlankiPolisov.exe' is missing. Please buildthe project and retry, or set the OutputPath and AssemblyName properties appropriately to point at the correct location for the target assembly.

Всего записей: 25 | Зарегистр. 29-10-2007 | Отправлено: 12:33 03-03-2009
Lazy KoT



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
D:\VS Projects\Копия (2) BlankiPolisov\bin\Debug\BlankiPolisov.exe

Файл на месте?

Всего записей: 204 | Зарегистр. 10-09-2004 | Отправлено: 14:26 03-03-2009
MishaDoom



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
В том то и дело что на месте

Всего записей: 25 | Зарегистр. 29-10-2007 | Отправлено: 15:19 03-03-2009
BaluBig



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
The located assembly's manifest definition does not match the assembly reference.
Это означает, что сборка, на которую ссылается твой проект отличается по версии или strong name от той, которая присутствует фактически. Нужно либо пересоздать ссылки заново либо найти нужную версию сборки и положить куда следует.
По второму вопросу - предлагаю обойтись без русских букв в пути.

Всего записей: 404 | Зарегистр. 06-02-2004 | Отправлено: 17:11 03-03-2009
MishaDoom



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
...пересоздать ссылки заново либо найти нужную версию сборки и положить куда следует...

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

Всего записей: 25 | Зарегистр. 29-10-2007 | Отправлено: 17:47 03-03-2009
Lazy KoT



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MishaDoom

Цитата:
You might have AssemblyVersion values of 1.0.*, and they all change every
time you rebuild. You reference one version, then compile it and it changes,
making it not match the original client reference.

Поменяй на [assembly: AssemblyVersion("1.0.0.0")]

Всего записей: 204 | Зарегистр. 10-09-2004 | Отправлено: 17:55 03-03-2009
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Программирование в среде .NET (ASP.NET,ADO.NET) на C#/VB.NET


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru