チェック マークと WPF コントロール (2 つのテキスト ブロックを持つ範囲スライダー) を含むテーブルを作成しようとしています。WPF コントロールは Avalon ライブラリを使用して記述されており、それをテーブルに正常に追加しました。しかし、フォームが閉じられたら、テキストブロックからテキストを取得し、それをどこかに適用する必要があります。フォーム上のコントロールを反復処理して要素ホストを見つけることはできますが、フォーム上の 2 つのテキスト ブロックから値を抽出する方法がわかりません。私のコードは以下に添付されています。これで私を助けてもらえますか?
コード:
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public static TableLayoutPanel _T;
static void set_globalvalue(TableLayoutPanel val)
{
_T = val;
}
public Form1()
{
InitializeComponent();
TableLayoutPanel TP = new TableLayoutPanel();
TP.ColumnCount = 2;
TP.RowCount = 5;
TP.BackColor = Color.White;
this.Controls.Add(TP);
TP.CellBorderStyle = TableLayoutPanelCellBorderStyle.Single;
int size = 0;
for (int i = 0; i < TP.RowCount; i++)
{
ElementHost host = new ElementHost();
UserControl1 uc = new UserControl1(1,15);
host.Name = i.ToString();
host.Dock = DockStyle.Top;
host.Child = uc;
TP.Controls.Add(host, 1, i);
host.Width = 270;
host.Height = 40;
CheckBox ch = new CheckBox();
ch.Name = i.ToString() + "_che";
TP.Controls.Add(ch, 0, i);
size = size + host.Height+20;
}
TP.Height = size;
TP.Width = 700;
set_globalvalue(TP);
this.FormClosing += Form1_FormClosing;
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
for (int i = 1; i <= _T.ColumnCount; i++)
{
for (int j = 0; j <= _T.RowCount; j++)
{
Control c = _T.GetControlFromPosition(i, j);
if (c != null & c is System.Windows.Forms.Integration.ElementHost)
{
ElementHost host =c as ElementHost;
System.Windows.UIElement u = host.Child;
???????????????????
}
}
}
}
}
}