私のwinFormsアプリケーションには2つのタブ(タブ1とタブ2)で構成されるタブコントロールがあります。 tab2では、データベース(製品情報)のデータグリッドビューにデータが取り込まれます。 タブ1では、ユーザーにオプションを選択させるコンボボックス[売上分析]があります。 私は今、tab2データグリッドのデータから地域の販売情報を表示する、cb選択のtab1からtab2にアクセスしたいと思っています。 出来ますか?私は本当に始めることを知らない
タブ1画像
タブ2
期待:
タブ1のコンボボックスが選択されている場合は、北、東、西の3つの(地域)があるタブ2のdatagridviewを見てから、売上高13、売上高14を合計してtextBoxesにそれぞれ表示する必要があります。
コントロールがすべて1つのフォームにあるので、そのメソッドは、追加の助けなしに互いに参照することができます。
だからあなたはSelectedIndexChanged
のComboBox cbAnalyse
cbAnalyse_SelectedIndexChanged(object sender, EventArgs e)
{
if (cbAnalyse.SelectedItem.ToStringndex == "Sales Analysis"
{
someTextbox1.Text = ColumnSum(yourDataGridView, someColumn1) + "$";
someTextbox2.Text = ColumnSum(yourDataGridView, someColumn2) + "$";
}
これは、小さなヘルパー関数を使用して、DataGridViewの1つの列からすべての値を合計します。
decimal ColumnSum(DataGridView dgv, int columnIndex)
{
decimal sum = 0m;
for (int row = 0; row < DGV.Rows.Count; row++)
if (DGV[columnIndex, row].Value != null) sum += Convert.ToDecimal(DGV[1, row].Value);
return sum;
}
人々はしばしば問題に遭遇します。ないいずれかの同じフォームに座っているが、第2、第3などのフォーム。または、彼らがUsercontrol
これは、コントロールを保持するためのおいしいコンテナです。
いずれの場合も、これらのコントロールは、デフォルトでは、他のFormsまたはUserObjectのプライベートメンバーです。
このような場合、通常はPropertyによって、何らかの種類のパブリックアクセサーを作成する必要があります。フォームの場合は、他のフォームへの参照を提供する必要があります。これらのフォームは、開いたときに保存されることがよくあります。
この場合、第2フォームはしばしば第1フォームへのバック・リフレクションも必要とする。これはしばしばコンストラクタで渡されます。
しかし、あなたのケースでは、これらの合併症のどれも重要ではありません。あなたが必要とするのは、これらすべてのテキストボックスを結びつけるための忍耐です;-)
更新:また、中間合計を取得する際に問題があるようで、タブ2の行の繰り返し領域を許可する必要がある場合は、where句を使用して計算する関数を使用することもできます。
decimal ColumnSumWhere(DataGridView dgv, int columnIndex, string region)
{
decimal sum = 0m;
for (int row = 0; row < DGV.Rows.Count; row++)
if (DGV[columnIndex, row].Value != null) &&
(DGV[regionColumn, row].Value.ToString() == region)
sum += Convert.ToDecimal(DGV[1, row].Value);
return sum;
}
where clause
私が必要とする属性を要約する。私はあなたのサンプルが列全体を合計していると思いますか?私のDVGの列sales13で、北の値は2x 800です。したがって、北のshdのためのtxtBoxは1600を表示します - James
私が正しくしたら、売上分析コンボの値を変更するたびに、データグリッドを含むタブページをアクティブにする必要があります。 タブコントロールの選択されたインデックスを[データグリッド]タブに設定すると、それが機能するはずです
this.tabControl1.SelectedIndex = 1;//Index of data grid tab
combobox
selctionのために。 - Jamescb selection
?イベント? ComboBoxのselectionChangedですか?またはCommandButton?正確で完全な質問を編集してください! - TaWcb selection
コンボボックスのselectionChangedつまり、コンボボックスが選択されている場合は、北、東、西のectが売り上げ13、売り上げ14を合計しているtab2のdatagridviewを見て、それぞれtextBoxesに表示する必要があります。 - James