私はstackoverflow全体を検索しましたが、問題に対する適切な答えを見つけることができません。データテーブルの値をWindowsフォームのdatagridviewにバインドしたかったのです。特に1つのクラスのデータテーブルと個別のファイルのGridviewです。
これが私のコードです。
namespace MyProj
{
public partial class ThisAddIn
{
public string GetDetails()
{
// Some Codes here
DataTable dt = new DataTable();
dt.Columns.Add("id");
dt.Columns.Add("uid");
dt.Columns.Add("email");
//Some codes here.I just only give a data table part only.
DataRow row = dt.NewRow();
row["id"] = sid;
sid++;
row["uid"] = uid;
row["email"] = e;
dt.Rows.Add(row);
}
}
}
Gridviewを追加しようとしました。これがそのコードです。まず、[追加]-> [NewItem]-> [WindowsForm]を追加し、form1.csとして追加します
次に、ツールボックスからこのform1.csクラスにGridviewを追加します。次に、gridviewをダブルクリックします。
これが私のform1.csコーディングです
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
//ThisAddIn th = new ThisAddIn();
this.dataGridView1.Visible = true;
dataGridView1.AutoGenerateColumns = false;
dataGridView1.DataSource =dt; // here show dt does not contain the current context.
}
両方のファイルは同じ名前空間の下にあります。クラスからオブジェクトを作成しようとすると(ThisAddIn th = new ThisAddIn();)、次のように表示されます。
ThisAddIn.ThisAddIn(Microsoft.Office.tools.Outlookファクトリファクトリ、IsServiceProvider serviceProvider)
このアドインには、0個の引数を取るコンストラクターは含まれていません
私はC#を初めて使用するので、この問題の解決に協力してください。説明付きの解決策を教えていただければ幸いです。