C# 将文本文件中的数据放入DataGridView,并将组合框放入DataGridView
我尝试从文本文件中获取我所做的工作的数据。接下来我想要一个列作为组合框。我不知道怎么做。我应该按相反的顺序做吗?如何在现有DataGridView中放置ColumnComboBox 创建列组合框的代码:C# 将文本文件中的数据放入DataGridView,并将组合框放入DataGridView,c#,datagridview,datagridviewcombobox,datagridviewcomboboxcell,C#,Datagridview,Datagridviewcombobox,Datagridviewcomboboxcell,我尝试从文本文件中获取我所做的工作的数据。接下来我想要一个列作为组合框。我不知道怎么做。我应该按相反的顺序做吗?如何在现有DataGridView中放置ColumnComboBox 创建列组合框的代码: private void FillUslugaComboBoxDataGridView() { try { StreamReader sr = new StreamReader(@"C:\Users\Radek\Documents\
private void FillUslugaComboBoxDataGridView()
{
try
{
StreamReader sr = new StreamReader(@"C:\Users\Radek\Documents\Visual Studio 2010\Projects\Salon Fryzjerski\Salon Fryzjerski\Salon Fryzjerski\Baza\Uslugi.txt");
string line = sr.ReadLine();
DataGridViewComboBoxColumn usluga = new DataGridViewComboBoxColumn();
if (line != null)
{
while (line != null)
{
usluga.Items.Add(line);
line = sr.ReadLine();
}
}
else
{
usluga.Items.Add("Error to fill, column is null");
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
您必须将该列添加到datagridview。作为示例,请参见下面的示例代码:
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;
namespace SOWinForm
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private DataGridView DataGridView1;
private void Form1_Load(object sender, EventArgs e)
{
DataGridView1 = new DataGridView();
var column = CreateComboBoxColumn();
SetAlternateChoicesUsingDataSource(column);
DataGridView1.Columns.Add(column);
Controls.Add(DataGridView1);
}
private DataGridViewComboBoxColumn CreateComboBoxColumn()
{
DataGridViewComboBoxColumn column =
new DataGridViewComboBoxColumn();
{
column.DataPropertyName = "Name";
column.HeaderText = "Name";
column.DropDownWidth = 150;
column.Width = 100;
column.MaxDropDownItems = 3;
column.FlatStyle = FlatStyle.Flat;
}
return column;
}
private void SetAlternateChoicesUsingDataSource(DataGridViewComboBoxColumn comboboxColumn)
{
{
comboboxColumn.DataSource = RetrieveNames();
comboboxColumn.ValueMember = "Name";
comboboxColumn.DisplayMember = comboboxColumn.ValueMember;
}
}
private List<Student> RetrieveNames()
{
return new List<Student>() { new Student() { Name = "Rohan" }, new Student() { Name = "Ram" } };
}
}
public class Student
{
public string Name { get; set; }
}
}
使用系统;
使用System.Collections.Generic;
使用系统图;
使用System.Windows.Forms;
名称空间通知
{
公共部分类Form1:Form
{
公共表格1()
{
初始化组件();
}
私有DataGridView DataGridView1;
私有void Form1\u加载(对象发送方、事件参数e)
{
DataGridView1=新建DataGridView();
var column=CreateComboBoxColumn();
SetAlternateChoicesUsingDataSource(列);
DataGridView1.Columns.Add(column);
控件。添加(DataGridView1);
}
私有DataGridViewComboBoxColumn CreateComboxColumn()
{
DataGridViewComboxColumn列=
新建DataGridViewComboxColumn();
{
column.DataPropertyName=“Name”;
column.HeaderText=“Name”;
column.DropDownWidth=150;
列宽=100;
column.MaxDropDownItems=3;
column.FlatStyle=FlatStyle.Flat;
}
返回列;
}
私有void SetAlternateChoicesUsingDataSource(DataGridViewComboxColumn ComboxColumn)
{
{
comboboxColumn.DataSource=RetrieveNames();
comboboxColumn.ValueMember=“Name”;
comboboxColumn.DisplayMember=comboboxColumn.ValueMember;
}
}
私有列表检索名称()
{
返回new List(){new Student(){Name=“Rohan”},new Student(){Name=“Ram”};
}
}
公立班学生
{
公共字符串名称{get;set;}
}
}