私はC#とプログラミング全般に不慣れで、春にクラスを開始する前に少し学習/練習しようとしています。とにかく、フォームAからフォームBへのチェックボックスコントロールのタグをフォームBのテキストボックスに取得しようとしています(フォームBテキストボックスにもテキストボックスからの他の情報があるため、文字列ビルダーを使用します)これでうまく動作するようになりましたフォーム B のロードですが、私のプログラムのフローにより、ボタンのクリックでこれを実現する必要があります。以下は、FormB ロードで動作している現在のコードです。ここに基本的なものが欠けている場合は申し訳ありません。
フォーム B. スペースのために stringbuilder の行の一部を省略しました。
public CodeBlueForm(List<string> ids, string custNameCb, string custWtnCb, string custCbrCb, string custNotesCb)
{
InitializeComponent();
cbNameText.Text = custNameCb;
cbWtnText.Text = custWtnCb;
cbCbrText.Text = custCbrCb;
cbNotesText.Text = custNotesCb;
string checkBoxesLines = "Lights: ";
foreach (string id in ids)
checkBoxesLines += string.Format("{0}, ", id);
System.Text.StringBuilder strBuilder = new System.Text.StringBuilder();
strBuilder.AppendLine("Inet Notes: " + "\r" + ((checkBoxesLines) + cbNotesText.Text));
cbViewText.Text = strBuilder.ToString();
{
現在のフォーム A
private void code_blue_link_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
var checkBoxIds = GetCheckBoxIds();
tShootCb = tShootText.Text;
svcsOfferedCb = svcsOfferedText.Text;
otherNotesCb = otherNotesText.Text;
custModemCb = custModemText.Text;
//Opens CODE BLUE form and pushes text to it.
CodeBlueForm cbForm = new CodeBlueForm(checkBoxIds, custNameText.Text, custCbrText.Text, custBtnText.Text, custModemCb + "\r\n" + tShootCb + "\r\n" + svcsOfferedCb + "\r\n" + otherNotesCb);
cbForm.Show();
}
private List<string> GetCheckBoxIds()
{
List<string> checkBoxIds = new List<string>();
foreach (Control control in pnlCheckBoxes.Controls)
{
if (control is CheckBox)
{
CheckBox checkBox = (CheckBox)control;
if (checkBox.Checked && checkBox.Tag is string)
checkBoxIds.Add((string)checkBox.Tag);
}
}
return checkBoxIds;
私が言ったように、これは現在フォームBのロードで機能しますが、フォームBのボタンクリックで機能させる方法を理解する必要があります。これに関する方向性は素晴らしいでしょう。
ありがとう