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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как пробежатся по всему datagridview 
:(
    Опции темы
shark1
Дата 18.11.2008, 10:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Как пробежатся по всему datagridview.
У меня есть форма на кот.есть datagridview с checkbox,есть текст боксы.Форма для пичати envelop's.Я сделал так что текст боксы бандятся к информации из datagridview.Например человек выбрал строку в datagridview,информация бандится в текстбокс,затем при нажатии на кнопку,информация уходит на пичать(из текстбоксов) и при печати я строго указываю где будет информация из каждого текстбокса.Теперь вопрос,например нужно напичатать конверты сразу всем клиентам из datagridview ,как пробижатся по datagridview,так чтоб поодному напичатать на всех клиентов в datagridview.Как поочереди перебирать чтоб поочереди информация поподала в текстбоксы.Спасибо.
PM MAIL   Вверх
SpaceSpace
Дата 19.11.2008, 14:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



На сколько мне известно у датадгривью есть датасорс. вот по датасорсу ты и можешь пробежаться



--------------------
Репутация - самое ценное, что есть у человека. Зарабатывают годы, теряют за мгновение.
70-565
MCPD Enterprise 3.5 
PM MAIL   Вверх
shark1
Дата 19.11.2008, 17:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Спасибо большое,а можно небольшой примерчик.
PM MAIL   Вверх
shark1
Дата 20.11.2008, 10:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Какаято проблемка с CheckBox,добовляю его вот так:
DataGridViewCheckBoxColumn checkboxColumn = new DataGridViewCheckBoxColumn();
                checkboxColumn.Width = 20;
                checkboxColumn.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
                dataGridView2.Columns.Insert(0, checkboxColumn);
 в datagridview,запускаю приложение,вижу колонку с CheckBox,пяюсь выделить какой нибудь и нечего не получается.Тоесть я так думал при нажатии на один из CheckBox,он должен выделится "v",а ничего не выделяется.Подскажите плиззз.спасибо.
PM MAIL   Вверх
shark1
Дата 22.11.2008, 11:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Вобщем добавил я колонку checkbox в datagridview вот так:
Код

DataGridViewCheckBoxColumn checkboxColumn = new DataGridViewCheckBoxColumn();
                checkboxColumn.HeaderText = "";
                checkboxColumn.Width = 20;
                checkboxColumn.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
                dataGridView1.Columns[0].MinimumWidth = 20;
                dataGridView1.Columns[0].Name = "";
                dataGridView1.Columns.Insert(0, checkboxColumn);
                

                //To check a column 

                foreach (DataGridViewRow row in dataGridView1.Rows)
                {
                    row.Cells[0].Value = false;

                } 

в самом datagridview в опциях поменял свойство на "Enable Editing"чтоб можно было выберать несколько checkbox(хотя странно,а если я нехочу давать такую опцию пользователю,тогда как по другому можно выберать несколько checkbox ?).Теперь самое интересное,у мемня есть функция для пичати:
Код

private void printDocument1_PrintPage(object sender, PrintPageEventArgs e)
        {

            Font font1 = new Font("Microsoft Sans Serif", 13);
            txt_File.Font = new Font(txt_File.Font, FontStyle.Regular);
            this.txt_File.Text = "         TO :   " + this.txt_ClientNameMail.Text + " \n\n" + " " + this.txt_AddressMail.Text
                                                       + "  \n" + " " + this.txt_CytiProvMail.Text + "  \n" + " " + this.txt_PCMail.Text;


            int intPrintAreaHeight;
            int intPrintAreaWidth;
            int marginLeft;
            int marginTop;

            e.Graphics.DrawImage(this.pictureBox12.Image, 15, 15, this.pictureBox12.Size.Width, this.pictureBox12.Size.Height);
            e.Graphics.DrawImage(this.pictureBox11.Image, 550, 325, this.pictureBox11.Size.Width, this.pictureBox11.Size.Height);

            intPrintAreaHeight = printDocument.DefaultPageSettings.PaperSize.Height - printDocument.DefaultPageSettings.Margins.Top - printDocument.DefaultPageSettings.Margins.Bottom;
            intPrintAreaWidth = printDocument.DefaultPageSettings.PaperSize.Width - printDocument.DefaultPageSettings.Margins.Left - printDocument.DefaultPageSettings.Margins.Right;
            printDocument.DefaultPageSettings.Margins.Bottom = 0; // 0,5 inches
            printDocument.DefaultPageSettings.Margins.Top = 150; // 0,5 inches
            printDocument.DefaultPageSettings.Margins.Left = 300; // 0,5 inches
            printDocument.DefaultPageSettings.Margins.Right = 0;


            marginLeft = printDocument.DefaultPageSettings.Margins.Left; // X coordinate
            marginTop = printDocument.DefaultPageSettings.Margins.Top; // Y coordinate

            int intLineCount = (int)(intPrintAreaHeight / font1.Height);
            RectangleF rectPrintingArea = new RectangleF(marginLeft, marginTop, intPrintAreaWidth, intPrintAreaHeight);
            StringFormat fmt = new StringFormat(StringFormatFlags.LineLimit);


            int intLinesFilled;
            int intCharsFitted;

            e.Graphics.MeasureString(txt_File.Text.Substring(intCurrentChar), font1, new SizeF(intPrintAreaWidth, intPrintAreaHeight), fmt, out intCharsFitted, out intLinesFilled);

            // Print the text to the page.

            e.Graphics.DrawString(txt_File.Text.Substring(intCurrentChar), font1, Brushes.Black, rectPrintingArea, fmt);

            // Advance the current char to the last char printed on this page. 
            // intCurrentChar is a static variable, its value can be used for the next
            // page to be printed. It is advanced by 1 and passed to Mid() to print the
            // next page (see above in Measurestring()).

            intCurrentChar += intCharsFitted;

            // HasMorePages tells the printing module whether another PrintPage event
            // should be fired.

            if (intCurrentChar < (txt_File.Text.Length - 1))
            {
                e.HasMorePages = true;
            }
            else
            {
                e.HasMorePages = false;
                // You must explicitly reset intCurrentChar it is static.
                intCurrentChar = 0;
            }
}

раньше ка я писал выше,когда я выберал одну строку в гриде,инфа бандилась в textbox-ы,а оттуда ухадила на пичать.Подскажите как мне сделать так,чтоб поочередно в зависимости от выбранных колонок,поочереди инфа бандилась и уходила на пичать.Спасибо.
PM MAIL   Вверх
shark1
Дата 24.11.2008, 17:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Плиззззз,подскажите.Спасибо
PM MAIL   Вверх
shark1
Дата 28.11.2008, 00:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Если я оставлю свой вариант создания checkbox:
Код

DataGridViewCheckBoxColumn checkboxColumn = new DataGridViewCheckBoxColumn();
                checkboxColumn.HeaderText = "Status";
                checkboxColumn.Width = 20;
                checkboxColumn.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
                dataGridView1.Columns[0].MinimumWidth = 20;
                dataGridView1.Columns[0].Name = "Status";
                dataGridView1.Columns.Insert(0, checkboxColumn);


то ничего не происходит,на preview я вижу только пустой конверт,и на пичать выходит пустой конверт, 
но если я через дизайнер добовляю checkboxColumn то тогда вроде все нормально и на превью я вижу данные на конверте,но только проблема в том что если я выделяю несколько checkbox то на превью я конечно вижу данные последнего выделенного checkbox,и на пичать выходит только один последний конверт:
Код

Font font1 = new Font("Microsoft Sans Serif", 13);
            txt_File.Font = new Font(txt_File.Font, FontStyle.Regular);



            for (int i = 0; i < dataGridView1.Rows.Count; i++)
            {
                if (!dataGridView1.Rows[i].IsNewRow)
                {
                    bool blnCheck = false;
                    bool.TryParse(dataGridView1.Rows[i].Cells["Status"].Value.ToString(), out blnCheck);

                    if (blnCheck)
                    {
                        //Получение вашего текста из грида, вместо текстбоксов.
                        this.txt_File.Text = string.Format("         TO :   {0} \n\n {1}  \n {2}  \n {3}",
                                                       dataGridView1.Rows[i].Cells["ClientName"].Value.ToString(),
                                                       dataGridView1.Rows[i].Cells["Address"].Value.ToString(),
                                                       dataGridView1.Rows[i].Cells["City"].Value.ToString(),
                                                       dataGridView1.Rows[i].Cells["PostalCode"].Value.ToString());
                    }
                }
            }
 
           int intPrintAreaHeight;
            int intPrintAreaWidth;
            int marginLeft;
            int marginTop;

            e.Graphics.DrawImage(this.pictureBox12.Image, 15, 15, this.pictureBox12.Size.Width, this.pictureBox12.Size.Height);
            e.Graphics.DrawImage(this.pictureBox11.Image, 440, 305, this.pictureBox11.Size.Width, this.pictureBox11.Size.Height);

            intPrintAreaHeight = printDocument.DefaultPageSettings.PaperSize.Height - printDocument.DefaultPageSettings.Margins.Top - printDocument.DefaultPageSettings.Margins.Bottom;
            intPrintAreaWidth = printDocument.DefaultPageSettings.PaperSize.Width - printDocument.DefaultPageSettings.Margins.Left - printDocument.DefaultPageSettings.Margins.Right;
            printDocument.DefaultPageSettings.Margins.Bottom = 0; // 0,5 inches
            printDocument.DefaultPageSettings.Margins.Top = 150; // 0,5 inches
            printDocument.DefaultPageSettings.Margins.Left = 300; // 0,5 inches
            printDocument.DefaultPageSettings.Margins.Right = 0;


            marginLeft = printDocument.DefaultPageSettings.Margins.Left; // X coordinate
            marginTop = printDocument.DefaultPageSettings.Margins.Top; // Y coordinate

            int intLineCount = (int)(intPrintAreaHeight / font1.Height);
            RectangleF rectPrintingArea = new RectangleF(marginLeft, marginTop, intPrintAreaWidth, intPrintAreaHeight);
            StringFormat fmt = new StringFormat(StringFormatFlags.LineLimit);


            int intLinesFilled;
            int intCharsFitted;

            e.Graphics.MeasureString(txt_File.Text.Substring(intCurrentChar), font1, new SizeF(intPrintAreaWidth, intPrintAreaHeight), fmt, out intCharsFitted, out intLinesFilled);

            // Print the text to the page.

            e.Graphics.DrawString(txt_File.Text.Substring(intCurrentChar), font1, Brushes.Black, rectPrintingArea, fmt);

            intCurrentChar += intCharsFitted;

            // HasMorePages tells the printing module whether another PrintPage event
            // should be fired.

            if (intCurrentChar < (txt_File.Text.Length - 1))
            {
                e.HasMorePages = true;
            }
            else
            {
                e.HasMorePages = false;
                // You must explicitly reset intCurrentChar it is static.
                intCurrentChar = 0;
            }


Подскажите плизззззз,что надо изменить чтоб если я выбераю несколько checkbox или все в datagridview, чтоб поочереди пичатались все..Зарание ОГРОМНОЕ спасибо.

PM MAIL   Вверх
shark1
Дата 28.11.2008, 10:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Ну где же вы артилерия.где помощь.Подскажите плиззз.Спасибо.
PM MAIL   Вверх
shark1
Дата 1.12.2008, 10:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Ну где же помощь,подскажите плизззз,очень надо.Спасибо.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

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


 




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


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

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