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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как через код создать DataGridView 
:(
    Опции темы
Rogik
  Дата 7.11.2008, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Veni vidi vici



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

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



Здраствуйте. 
Задача у меня в следующем я открываю БД ( Access) через OleDbConnection делаю запрос на табличы которые в этой бд и теперь как мне сделать, так что-бы каждая таблица этой бд открывалась на новой странице в tabControl. количество таблиц в бд я не знаю, следовательно ни количество DataGridView ни страниц в tabControl, как мне  для каждой таблицы создать DataGridView и разместить на соответствующей странице?
Код

 string opDB = openFileDialog1.FileName;
            OleDbConnection db = new OleDbConnection();
            db.ConnectionString = @"provider=Microsoft.Jet.oledb.4.0;" +
                                                 @"data source= " + opDB;
            db.Open();
            DataTable tdl;
            tdl = db.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,
                                  new object[] { null, null, null, "TABLE" });
            foreach (DataRow row in tdl.Rows)
            {
                tabControl1.TabPages.Add(row[tdl.Columns[2]].ToString());
                DataGridView DGW = new DataGridView();
                // ну не знаю я что писать дальше:)
            }
  
PM MAIL ICQ   Вверх
Partizan
Дата 7.11.2008, 16:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

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



Rogik, а дальше - создавать колонки, прицеплять их к DGV и биндить данные

(с) MSDN : 
Код

    private void InitializeDataGridView()
    {
        // Create an unbound DataGridView by declaring a column count.
        dataGridView1.ColumnCount = 4;
        dataGridView1.ColumnHeadersVisible = true;

        // Set the column header style.
        DataGridViewCellStyle columnHeaderStyle = new DataGridViewCellStyle();

        columnHeaderStyle.BackColor = Color.Beige;
        columnHeaderStyle.Font = new Font("Verdana", 10, FontStyle.Bold);
        dataGridView1.ColumnHeadersDefaultCellStyle = columnHeaderStyle;

        // Set the column header names.
        dataGridView1.Columns[0].Name = "Recipe";
        dataGridView1.Columns[1].Name = "Category";
        dataGridView1.Columns[2].Name = "Main Ingredients";
        dataGridView1.Columns[3].Name = "Rating";

        // Populate the rows.
        string[] row1 = new string[] { "Meatloaf", "Main Dish", "ground beef",
            "**" };
        string[] row2 = new string[] { "Key Lime Pie", "Dessert", 
            "lime juice, evaporated milk", "****" };
        string[] row3 = new string[] { "Orange-Salsa Pork Chops", "Main Dish", 
            "pork chops, salsa, orange juice", "****" };
        string[] row4 = new string[] { "Black Bean and Rice Salad", "Salad", 
            "black beans, brown rice", "****" };
        string[] row5 = new string[] { "Chocolate Cheesecake", "Dessert", 
            "cream cheese", "***" };
        string[] row6 = new string[] { "Black Bean Dip", "Appetizer", 
            "black beans, sour cream", "***" };
        object[] rows = new object[] { row1, row2, row3, row4, row5, row6 };

        foreach (string[] rowArray in rows)
        {
            dataGridView1.Rows.Add(rowArray);
        }
    }

    private void button1_Click(object sender, System.EventArgs e)
    {
        // Resize the height of the column headers. 
        dataGridView1.AutoResizeColumnHeadersHeight();

        // Resize all the row heights to fit the contents of all non-header cells.
        dataGridView1.AutoResizeRows(
            DataGridViewAutoSizeRowsMode.AllCellsExceptHeaders);
    }

    private void InitializeContextMenu()
    {
        // Create the menu item.
        ToolStripMenuItem getRecipe = new ToolStripMenuItem("Search for recipe", null,
            new System.EventHandler(ShortcutMenuClick));

        // Add the menu item to the shortcut menu.
        ContextMenuStrip recipeMenu = new ContextMenuStrip();
        recipeMenu.Items.Add(getRecipe); 

        // Set the shortcut menu for the first column.
        dataGridView1.Columns[0].ContextMenuStrip = recipeMenu;
        dataGridView1.MouseDown += new MouseEventHandler(dataGridView1_MouseDown);
    }

    private DataGridViewCell clickedCell;

    private void dataGridView1_MouseDown(object sender, MouseEventArgs e)
    {
    // If the user right-clicks a cell, store it for use by the shortcut menu.
        if (e.Button == MouseButtons.Right)
        {
            DataGridView.HitTestInfo hit = dataGridView1.HitTest(e.X, e.Y);
            if (hit.Type == DataGridViewHitTestType.Cell)
            {
                clickedCell =
                    dataGridView1.Rows[hit.RowIndex].Cells[hit.ColumnIndex];
            }
        }
    }

    private void ShortcutMenuClick(object sender, System.EventArgs e)
    {
        if (clickedCell != null)
        {
            //Retrieve the recipe name.
            string recipeName = (string)clickedCell.Value;

            //Search for the recipe.
            System.Diagnostics.Process.Start(
                "http://search.msn.com/results.aspx?q=" + recipeName);
                //null);
        }
    }






--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Rogik
Дата 9.11.2008, 05:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Veni vidi vici



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

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



насколько я понял ваш код написан для датагрид1 который расположен на форме? а у меня его нету мне надо его создать и привязать к конкретной странице.
PM MAIL ICQ   Вверх
Partizan
Дата 9.11.2008, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

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



Rogik, в этом примере dataGridView1 просто кинут в дизайнере на форму...

Код

                TabPage newPage = tabControl1.TabPages.Add(row[tdl.Columns[2]].ToString());
                DataGridView DGW = new DataGridView();
                newPage.Controls.Add(DGW);


ну а дальше можете использовать в качестве примера код, который я приводил выше...
можете смело менять dataGridView1 на ваш DGW

Добавлено через 1 минуту и 19 секунд
код демонстрирует создание колонок и их небольшую настройку...


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Rogik
Дата 9.11.2008, 17:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Veni vidi vici



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

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



Код

newPage.Controls.Add(DGW);

 Спасибо. вот этот код мне и нужен.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

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

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


 




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


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

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