Получение данных с программно созданных элементов - C# (212662)
Формулировка задачи:
Использую следующий код для программного создания DataGridView.
Вопрос: Как теперь получить доступ к созданному элементу
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using FirebirdSql.Data.FirebirdClient;
namespace WindowsFormsApplication4
{
public partial class Form1 : Form
{
DataGridView _grid;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
DataGridView _grid = new DataGridView();
_grid.Dock = DockStyle.Fill;
_grid.AllowUserToAddRows = false;
Controls.Add(_grid);
_grid.Columns.Add(new DataGridViewTextBoxColumn());
_grid.Columns[0].HeaderText = "TextBoxColumn";
_grid.Columns.Add(new DataGridViewLinkColumn());
_grid.Columns[1].HeaderText = "LinkColumn";
_grid.Columns.Add(new DataGridViewButtonColumn());
_grid.Columns[2].HeaderText = "ButtonColumn";
_grid.Columns.Add(new DataGridViewCheckBoxColumn());
_grid.Columns[3].HeaderText = "CheckBoxColumn";
_grid.Columns.Add(new DataGridViewComboBoxColumn());
_grid.Columns[4].HeaderText = "ComboBoxColumn";
_grid.Columns.Add(new DataGridViewImageColumn());
_grid.Columns[5].HeaderText = "ViewImageColumn";
_grid.Rows.Add();
for (int i = 0; i <= 3; i++)
{
DataGridViewRow heter_row = new DataGridViewRow();
for (int j = 0; j < _grid.Columns.Count; j++)
heter_row.Cells.Add(new DataGridViewTextBoxCell());
switch (i)
{
case 0:
heter_row.HeaderCell.Value = "Value";
break;
case 1:
heter_row.HeaderCell.Value = "ValueType";
break;
case 2:
heter_row.HeaderCell.Value = "FormattedValue";
break;
case 3:
heter_row.HeaderCell.Value = "FormattedValueType";
break;
}
_grid.Rows.Add(heter_row);
}
// Заполнение строки 0
DataGridViewRow row0 = _grid.Rows[0];
row0.HeaderCell.Value = "Внешний вид ячейки";
DataGridViewTextBoxCell cell0 = (DataGridViewTextBoxCell)row0.Cells[0];
cell0.Value = "dotNET";
DataGridViewLinkCell cell1 = (DataGridViewLinkCell)row0.Cells[1];
cell1.Value = "RSDN.ru";
DataGridViewButtonCell cell2 = (DataGridViewButtonCell)row0.Cells[2];
cell2.Value = "Accept";
DataGridViewCheckBoxCell cell3 = (DataGridViewCheckBoxCell)row0.Cells[3];
cell3.Value = true;
DataGridViewComboBoxCell cell4 = (DataGridViewComboBoxCell)row0.Cells[4];
cell4.Items.AddRange(new string[] { "Trace", "Debug", "Release" });
cell4.Value = "Release";
DataGridViewImageCell cell5 = (DataGridViewImageCell)row0.Cells[5];
cell5.ImageLayout = DataGridViewImageCellLayout.Zoom;
cell5.Value = Image.FromFile(@"C:\1\1.bmp");
// Заполнение строки 1
for (int j = 0; j < _grid.Columns.Count; j++)
_grid.Rows[1].Cells[j].Value = _grid.Rows[0].Cells[j].Value.ToString();
// Заполнение строки 2
for (int j = 0; j < _grid.Columns.Count; j++)
_grid.Rows[2].Cells[j].Value =
_grid.Rows[0].Cells[j].ValueType.ToString();
// Заполнение строки 3
for (int j = 0; j < _grid.Columns.Count; j++)
_grid.Rows[3].Cells[j].Value =
_grid.Rows[0].Cells[j].FormattedValue.ToString();
// Заполнение строки 4
for (int j = 0; j < _grid.Columns.Count; j++)
_grid.Rows[4].Cells[j].Value =
_grid.Rows[0].Cells[j].FormattedValueType.ToString();
}
private void button1_Click(object sender, EventArgs e)
{
//int p = Convert.ToInt32(this._grid.CurrentRow.Cells[0].Value);
/* DataGridViewComboBoxCell cell =
(DataGridViewComboBoxCell)_grid.Rows[2].Cells[0];
cell.Items.Clear();
cell.Items.AddRange(new string[] { "ABC", "KLM", "XYZ" });*/
DataGridViewComboBoxCell comboCell = (DataGridViewComboBoxCell)_grid.Rows[2].Cells[1];
comboCell.Items.AddRange(new string[] { "VS2003", "VS2005", "MSDN", "RSDN" });
}
}
}Решение задачи: «Получение данных с программно созданных элементов»
textual
Листинг программы
ArrayList myAL = new ArrayList();
myAL.Add("Hello");
myAL.Add("World");
myAL.Add("!");