gpt4 book ai didi

c# - 在 C# 中从 MySQL 数据库复制粘贴到另一个程序的表单

转载 作者:行者123 更新时间:2023-11-29 23:45:48 25 4
gpt4 key购买 nike

示例场景:从 Microsoft Word 复制一行时,它会被复制到剪贴板,并且文本也可以粘贴到记事本和其他内容。

我的问题:我想开发一个可以从 MySQL 数据库复制元组的应用程序。从复制的元组中,每一列的数据应存储在一个数组中,并且在粘贴到另一个应用程序的文本框时,必须为每个文本框粘贴一个数据,直到元组末尾。

即应用程序有一个包含 5 个文本框的表单:textbox1、textbox2、textbox3、textbox4、textbox5,数据库表有 5 列,其中存储了数据。

设计的应用程序将显示数据库中的数据,并且在复制元组时,它必须以 a[0]、a[1]、a[2]、a[3]、a[4] 的形式存储在数组中。然后,将其粘贴到具有这 5 个文本框的另一个应用程序时,只有 a[0] 的数据必须存储到 textbox1,只有 a[1] 的数据必须存储到 textbox2,依此类推。

这能实现吗?如果可以的话,这个问题怎么解决。如果我问得太多,请原谅我。

问候,尼朋释迦

最佳答案

嗯,你显然不能让你的用户直接与 mySql 交互,但我想这不是你的意思?

你可以控制两端,源端和目标端吗?如果是这样,您所需要做的就是决定可以放入剪贴板并再次检索的格式

这是一个帮助您入门的简单示例。

仅用于演示,它使用 ListView以及Ctl-C将每个项目的文本复制到 Clipboard ,用垂直标签将它们分开。

根据 Ctl-V在文本框中,所有这些字符串都被再次拆分,并且每个字符串都插入到单独的行中。

private void lv_files_KeyDown(object sender, KeyEventArgs e)
{

if (e.KeyCode == Keys.C && e.Modifiers == Keys.Control)
{
string data = "";
foreach (ListViewItem lvi in lv_files.Items) data += lvi.Text + "\v";
Clipboard.SetData(DataFormats.Text, data); ;
e.Handled = true;
}
}

private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.V && e.Modifiers == Keys.Control)
{
string data = Clipboard.GetData(DataFormats.Text).ToString();
var parts = data.Split('\v');
foreach (string p in parts) textBox1.Text += p + "\r\n";
Clipboard.Clear();
e.Handled = true;
}
}

这应该通过以下功能进行扩展:

  • 也照顾一下Shift-InsertCtrl-Insert
  • 根据您的实际问题进行调整:
    • 而不是 ListView使用你的来源;您无法与 DataTable 进行用户交互,所以你需要一些替代控制。当然是DataGridView我想到了,但它确实可能是一个可以集中注意力并聆听 KeyDown 的东西。
    • 而不是一行 TextBox 中的几行您应该将数据放入目标 TextBoxes ;也许你可以把它们放在 List<TextBox> 中使访问它们变得简单..

关于c# - 在 C# 中从 MySQL 数据库复制粘贴到另一个程序的表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25958535/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com