データを列に表示するデータグリッドビューがあります。私が達成しようとしているのは、行を選択して編集ボタンを押した後、新しいフォームが開き、正しいテキスト ボックスの行を分割してデータを更新することです。
datagridview 行には、名前、電子メール、日付など、さまざまな種類のデータが表示されます。
何か案が?前もって感謝します!
データを列に表示するデータグリッドビューがあります。私が達成しようとしているのは、行を選択して編集ボタンを押した後、新しいフォームが開き、正しいテキスト ボックスの行を分割してデータを更新することです。
datagridview 行には、名前、電子メール、日付など、さまざまな種類のデータが表示されます。
何か案が?前もって感謝します!
DataGridView 列に対応するプロパティを持つ MyDataCollection などのクラスを作成できます。[編集] ボタンを押したら、このクラスの新しいインスタンスを作成し、必要なデータを入力して、パラメーターとして EditForm のコンストラクターに渡します。
public class MyDataCollection
{
public string Name;
public string Email;
// --
}
メインフォームで:
void btnEdit_Click(object sender, EventArgs e)
{
// Create the MyDataCollection instance and fill it with data from the DataGridView
MyDataCollection myData = new MyDataCollection();
myData.Name = myDataGridView.CurrentRow.Cells["Name"].Value.ToString();
myData.Email = myDataGridView.CurrentRow.Cells["Email"].Value.ToString();
// --
// Send the MyDataCollection instance to the EditForm
formEdit = new formEdit(myData);
formEdit.ShowDialog(this);
}
編集フォームは次のようになります。
public partial class formEdit : Form
{
// Define a MyDataCollection object to work with in **this** form
MyDataCollection myData;
public formEdit(MyDataCollection mdc)
{
InitializeComponent();
// Get the MyDataCollection instance sent as parameter
myData = mdc;
}
private void formEdit_Load(object sender, EventArgs e)
{
// and use it to show the data
textbox1.Text = myData.Name;
textbox2.Text = myData.Email;
// --
}
}
MyDataCollection クラスを忘れて、DataGridViewRow 全体を formEdit のコンストラクターに渡すこともできます。
このサイトでは、フォーム間でデータを送信する方法について説明しています。データグリッドで適切なセルを選択し、その情報をすべての適切なテキスト ボックスに送信するのと同じくらい簡単です。その後、それらを送り返します。フォーム間のデータ
基本は、値を取得するために使用できるメソッドを作成することです。
public string getTextBoxValue()
{
return TextBox.Text;
}
次に、メソッドを呼び出してフォーム間でデータを渡すことができます。
this.Text = myForm2.getTextBoxValue();
ただし、セルの値を送信し、メソッドの戻り値に等しい textbox.text を作成します。これは理論の基本的な例です。希望どおりに機能するように自分で試してみてください。できない場合は、戻ってきて助けを求め、コードを編集してください。ただし、最初に自分で試した後でのみです