私は、コンテナコントロールの幅と高さの一部である幅と高さを与えることで、動的に作成されたコントロールを均等に配置しようとしています。私のTextBox.Width値が私が割り当てようとしている値を受け入れないのはなぜですか?
しかし、次元を計算する関数は正しいものの、何らかの理由でWidthプロパティへの代入が拒否されています。 WidthToUse()関数は19を返していますが、動的に作成されたTextBoxにその値を代入しようとすると、... 630!なぜ630で始まるのですか、それはなぜ割り当てられないのですか?
「作業中」はうまくいきませんが、この数式を使用してコントロールをすべて収容するには、コントロールが多すぎるか、パネルに十分なスペースがありません。あなたは私の推測だろうFill
からDock
プロパティセットを持っているので
int WidthToUse = getTextBoxWidthToUse(tableLayoutPanelGreatGooglyMoogly.Width);
int HeightToUse = getControlHeightToUse(tableLayoutPanelGreatGooglyMoogly.Height);
TextBox txtbx = new TextBox();
txtbx.Parent = tableLayoutPanelGreatGooglyMoogly;
txtbx.Margin = new Padding();
txtbx.Dock = DockStyle.Fill;
txtbx.AutoSize = false;
txtbx.Width = WidthToUse; // WidthToUse is 19, but txtbx.Width is 630 both before AND after this assignment!
txtbx.Height = HeightToUse; // HeightToUse is 27
private static int getControlHeightToUse(int theDynPanelHeight) {
return (theDynPanelHeight/NUMBER_OF_ROWS);
}
private static int getTextBoxWidthToUse(int theDynPanelWidth) {
return (theDynPanelWidth/32);
}
private static int getLabelWidthToUse(int theDynPanelWidth) {
return ((theDynPanelWidth/64) * 3);
}
DockStyle.Fillを使用している場合、明示的なサイズを設定するのはなぜですか? – syneptody