【发布时间】:2010-12-06 04:31:47
【问题描述】:
下面的代码让我可以在列表视图中显示收到的电子邮件,当所选索引发生更改时,会在 RTB 中显示所选电子邮件的正文。问题是我更改了代码以使用数据网格视图,现在标签部分不起作用
void SomeFunc() // This line added by Jon
{
int i;
for (i = 0; i < bundle.MessageCount; i++)
{
email = bundle.GetEmail(i);
ListViewItem itmp = new ListViewItem(email.From);
ListViewItem.ListViewSubItem itms1 =
new ListViewItem.ListViewSubItem(itmp, email.Subject);
ListViewItem.ListViewSubItem itms2 =
new ListViewItem.ListViewSubItem(itmp, email.FromName);
itmp.SubItems.Add(itms1);
itmp.SubItems.Add(itms2);
listView1.Items.Add(itmp).Tag = i;
richTextBox1.Text = email.Body;
}
// Save the email to an XML file
bundle.SaveXml("email.xml");
}
private void listView1_SelectionChanged(object sender, EventArgs e)
{
if (listView1.SelectedCells.Count > 0)
{
// bundle is now accessible in your event handler:
richTextBox1.Text = bundle.GetEmail((int)listView1.SelectedCells[0].Tag).Body;
}
}
数据网格视图代码
int i;
for (i = 0; i < bundle.MessageCount; i++)
{
email = bundle.GetEmail(i);
string[] row = new string[] { email.From, email.Subject, email.FromName };
object[] rows = new object[] { row };
foreach (string[] rowArray in rows)
{
dataGridView1.Rows.Add(rowArray);
}
} // This line added by Jon
【问题讨论】:
-
你说“不会工作”是什么意思?是否存在编译错误、运行时错误,或者事情没有按预期发生(在这种情况下,预期什么?)。我在您的代码中看不到对 DataGridView 的任何引用。
-
好吧,我不知道在哪里放置 .Tag = i;当我把它放在这里时((dataGridView1.Rows.Add(rowArray);))我得到'int'不包含'Tag'的定义并且没有扩展方法'Tag'接受'int'类型的第一个参数可以被发现(您是否缺少 using 指令或程序集引用?)我是 c# 新手,所以它可能只是一些愚蠢的东西,但我可以弄清楚
标签: c# datagridview tags