给XPTABLE添加一个事件函数:table1_SelectionChanged,这样就可以自动把选中数据复制到剪贴板中,打开excel, 就可以直接粘贴上。
private void table1_SelectionChanged(object sender, XPTable.Events.SelectionEventArgs e)
{
DataObject dataObject = new DataObject();
downtxt.Text = "选中行数: " + e.TableModel.Selections.SelectedItems.Count().ToString();
string tmp = "";
foreach (XPTable.Models.Row rows in e.TableModel.Selections.SelectedItems)
{
foreach (XPTable.Models.Cell item in rows.Cells)
{
tmp = tmp + item.Text + "\t";
}
tmp = tmp + "\r\n";
}
dataObject.SetData(tmp.ToString());
Clipboard.SetDataObject(dataObject);
}
也可以获取选中的一行,一行中的ID单元格,用于用户在XPTABLE上选了一行,然后提示删除:
//delete
private void toolStripButton3_Click(object sender, EventArgs e)
{
//得到选中的第一行
XPTable.Models.Row r = tableModel1.Selections.SelectedItems.FirstOrDefault();
if (r != null )
{
//得到一行的第二个单元格
XPTable.Models.Cell c = r.Cells[1]; //ID
// 显示包含“确认”和“取消”按钮的对话框
DialogResult result = MessageBox.Show(
" Delete " + r.Cells[2].Text + " ?", // 消息文本
"", // 对话框标题
MessageBoxButtons.OKCancel, // 按钮类型
MessageBoxIcon.Question // 图标类型
);
if (result == DialogResult.OK)
{
downtxt.Text = c.Data.ToString();
var one = db.ServerTables.Where(p => p.id == (long)c.Data).FirstOrDefault();
db.ServerTables.Remove(one);
db.SaveChanges();
}
ShowTable();
}