0

これは変だと思います。Forms Designer を使用して作成した画面 (Windows フォーム) があります。何らかの基準に従って、実行時にコントロールの 1 つの幅をプログラムで変更したいと考えています。

私の問題は、これができないように見えることです。私のアプローチは、フォーム クラスの InitializeComponent() メソッドが実行された後 (フォーム コンストラクターの最後など) のどこかで、Width プロパティに新しい値を割り当てることです。コントロールのプロパティが変更されたことが時計に表示されますが、その後に表示される画面では新しい値が無視され、InitializeComponent() で割り当てられた値が使用されます。

私は不可能なことをしようとしていますか?デザイナーによって作成されたコントロールに対してこれをブロックするブードゥー教がバックグラウンドにあるのでしょうか、それとも私のやり方が間違っているのでしょうか?

4

4 に答える 4

1

チェックControl.AutoSizeControl.Anchorプロパティ。特に:

Control.Anchor: コントロールがバインドされているコンテナーの端を取得または設定し、コントロールが親と一緒にサイズ変更される方法を決定します。

于 2012-11-08T10:37:40.777 に答える
0

フォームが読み込まれて表示されたときのイベントを処理しようとしましたか? 次のようなもの: this.Loaded += MyLoadedEventHandler; メソッド MyLoadEventHandler で幅を調整します。– ダビオ 2時間前

それはトリックをしました。

于 2012-11-08T13:32:40.893 に答える
0

コントロールの場合は、プロパティが false に設定されていることを確認してください。そうでない場合、.NET はコンテンツに合わせてコントロールのサイズを変更しますLabelAutosize

于 2012-11-08T10:33:32.437 に答える
0

メソッドは試しましたInvalidateか?

于 2012-11-08T10:47:38.810 に答える