
こんにちは。c#初心者です。
コントロールを制作しているのですが、その途中で「System.Windows.Forms.Splitter」のようにドッキングしているコントロールに対して働き掛ける処理で、そのドッキングしているコントロールを取得する方法が分からず苦戦しています。
視覚化すると、□を現在制作中の「SampleControl」、■を任意の「Control」、■、□共に「Dockプロパティ」が「DockType.Left」とすると、
■□ のように並んでいる際に□内部で■を取得する方法です。
どなたか詳しい方がいらっしゃいましたら教えていただけませんか?
No.1ベストアンサー
- 回答日時:
によるとzオーダーに従って並べられるそうなので、Dock = DockStyle.Left、かつ、zオーダーが自分より大きいコントロールの中で、zオーダーが最小のものが左隣のコントロールになるようです。
少しだけ試してみたところ、Controls を foreach で回すとzオーダーの順で取得できるようなので、
次のようにするとできるようです。(確認が十分ではありません。)
Form f = this.ParentForm;
int myIndex = f.Controls.GetChildIndex(this);
foreach (Control child in f.Controls)
{
if (child.Dock == DockStyle.Left)
{
if (myIndex < f.Controls.GetChildIndex(child))
{
MessageBox.Show(child.Name);
break;
}
}
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCELでactivexコントロールを...
-
vb.netで画面のコントロールId...
-
ExcelVBAのコントロールの種類...
-
ExcelVBAでListViewが使用できない
-
'ckbl' コントロールは作成され...
-
Labelコントロールの(左右)余...
-
Groupboxの配下のコントロール...
-
chr関数の呼び出しで「プロ...
-
ユーザーフォームで動的(Me.Con...
-
エクセルVBAでオプションボタン...
-
(VBA)スピンボタンの大量...
-
エクセル コントロールツール...
-
C# ユーザコントロール内のボタ...
-
VB6のユーザーコントロールの受...
-
VBA ユーザーフォームの Keypre...
-
エクセル・VBA CheckBoxのオブ...
-
ACCESSフォームにコント...
-
カメラスクロールするのを動画...
-
C# FlowLayoutPanelにて
-
Excel VBA で Richtextboxを使...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCELでactivexコントロールを...
-
'ckbl' コントロールは作成され...
-
エクセルVBAでオプションボタン...
-
ExcelVBAでListViewが使用できない
-
カメラスクロールするのを動画...
-
VBA ユーザーフォームの Keypre...
-
Excel VBA で Richtextboxを使...
-
エクセル・VBA CheckBoxのオブ...
-
チェックボックスをオンにした...
-
vb.netで画面のコントロールId...
-
コントロールを移動できない
-
OCXって何ですか?
-
C#で角が丸いテキストボックス
-
ユーザーフォームで動的(Me.Con...
-
C# Form上に配置されたコントロ...
-
ExcelVBAのコントロールの種類...
-
chr関数の呼び出しで「プロ...
-
変数をコントロール型で使用す...
-
ActiveXコントロールはどこへい...
-
Groupboxの配下のコントロール...
おすすめ情報