public SelectWindow(string sendedtext, string InputText = "") { //データコンテキスト用のデータの用意 swContext = new SelectionData(48); Sentext = sendedtext; //パネルデータに実体があれば読み出して設定 if (ModuleData.Panel.Array != null) { List <List <string> > csvData = ModuleData.Panel.Array; DataTable csvTable = ModuleData.Panel.Table; //csvの行数を保持 (csvData[index]が一行分のデータ) int csvRow = csvTable.Rows.Count; int TargetColNo = -1; //目的のデータの列番号を入れる変数 ////csvFieldでcsvData行の中の列セルにアクセスする //List<string> csvField = csvData[0];//1行目にアクセスして、データのヘッダ名を調べる ////親ウィンドウから送られた文字列でヘッダ名を検索する //for (int i = 0; i < csvField.Count; i++) //{ // string FieldText = (string)csvField[i]; // if (FieldText == sendedtext) // { // TargetColNo = i; // break; // } //} DataTable PanelData = new DataTable(); try { //パネルデータを抽出テキストの列で絞り込む PanelData = csvTable.DefaultView.ToTable("PanelData", false, Sentext); } catch { //見つからなかったらメッセージを表示 MessageBox.Show(sendedtext + "のデータが見つかりません"); TargetColNo = 0; } if (TargetColNo != 0) { int count = 0; foreach (DataRow drEle in PanelData.AsEnumerable()) { string ftext = drEle.Field <string>(Sentext); if (ftext != "") { swContext.bIsButtonEnable(true, count); string[] txdata = ftext.Split('%'); swContext.strButtonText(txdata[0], count); if (txdata.Count <string>() > 1) { int color = 0; if (int.TryParse(txdata[1], out color)) { swContext.intButtonColor(color, count); } else { swContext.intButtonColor(0, count); } } else { swContext.intButtonColor(0, count); } } count++; if (count > 47) { break; } } //拡張パネル設定 if (ModuleData.ExtPanel.Array != null) { csvData = ModuleData.ExtPanel.Array; List <string> csvField; //親ウィンドウから送られた文字列で拡張データのヘッダ名を検索する int TargetRowNo = -1; for (int i = 0; i < csvData.Count; i++) { csvField = csvData[i]; string FieldText = csvField[0]; if (FieldText == sendedtext) { TargetRowNo = i; break; } } //見つかったらパネルに設定 if (TargetRowNo != -1) { csvField = csvData[TargetRowNo]; for (int i = 1; i < csvField.Count; i++) { string ftext = csvField[i]; if (ftext != "") { swContext.bIsButtonEnable(true, i + 43); string[] txdata = ftext.Split('%'); swContext.strButtonText(txdata[0], i + 43); if (txdata.Count <string>() > 1) { int color = 0; if (int.TryParse(txdata[1], out color)) { swContext.intButtonColor(color, i + 43); } else { swContext.intButtonColor(0, i + 43); } } else { swContext.intButtonColor(0, i + 43); } } } } } } swContext.FlushBottonColor(); } else //パネルデータ無し { MessageBox.Show("パネルデータがありません"); } //データコンテキストに設定 DataContext = swContext; InitializeComponent(); if (InputText != "") { this.textBox_Input.Text = InputText; } else { this.textBox_Input.Text = "自由入力"; } result = true; }