winform プロジェクト用に新しいユーザー管理パネルを作成しようとしています。基本的には、gridview のRole列で、管理ユーザーが他のユーザーの役割を決定できるコンボボックスを表示したいと考えています。コンボボックスのコンテンツには、「管理者」、「ユーザー」、「クライアント」などの 3 つの項目しかありませんが、 DataError イベントで一連のエラーが発生します。
私がしたことは、グリッドビューを右クリックすることだけでした。次に、「 Edit Columns 」をクリックし、最初のパネルで「Role」列を選択し、その ColumnType プロパティをDataGridViewComboBoxColumnに変更しました。次に、ロールの名前をItemsプロパティのコレクションに 1 行に 1 つずつ追加しました。
以下に、私のコード、winform のデザイン、およびエラー メッセージを示します。エラーメッセージを表示せずに動作させるにはどうすればよいですか?
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace XXX
{
public partial class UserManager : Form
{
public UserManager()
{
InitializeComponent();
}
private void UserManager_Load(object sender, EventArgs e)
{
panel1.BackColor = Color.FromArgb(100, 88, 55, 55);
// TODO: This line of code loads data into the 'xXXDataSet.users' table. You can move, or remove it, as needed.
this.usersTableAdapter.Fill(this.xXXDataSet.users);
}
private void button3_Click(object sender, EventArgs e)
{
this.Close();
}
private void button1_Click(object sender, EventArgs e)
{
}
private void dataGridView1_DataError(object sender, DataGridViewDataErrorEventArgs anError)
{
MessageBox.Show("Error happened " + anError.Context.ToString());
if (anError.Context == DataGridViewDataErrorContexts.Commit)
{
MessageBox.Show("Commit error");
}
if (anError.Context == DataGridViewDataErrorContexts.CurrentCellChange)
{
MessageBox.Show("Cell change");
}
if (anError.Context == DataGridViewDataErrorContexts.Parsing)
{
MessageBox.Show("parsing error");
}
if (anError.Context == DataGridViewDataErrorContexts.LeaveControl)
{
MessageBox.Show("leave control error");
}
if ((anError.Exception) is ConstraintException)
{
DataGridView view = (DataGridView)sender;
view.Rows[anError.RowIndex].ErrorText = "an error";
view.Rows[anError.RowIndex].Cells[anError.ColumnIndex].ErrorText = "an error";
anError.ThrowException = false;
}
}
}
}