DoboWiki
Top
> .NETプログラミング研究/69 をテンプレートにして作成
.NETプログラミング研究/69 をテンプレートにして作成
開始行:
#title(.NETプログラミング研究 第69号)
#navi(.NETプログラミング研究)
#contents
*.NETプログラミング研究 第69号 [#aef76f38]
**.NET Tips [#l3fd7d51]
今回は、.NET Framework 2.0から追加されたWindowsアプリケー...
***FlowLayoutPanelコントロール [#yd1425ee]
#column(注意){{
この記事の最新版は「[[FlowLayoutPanelコントロールの基本的...
}}
FlowLayoutPanelコントロールについて、MSDNでは次のように説...
「FlowLayoutPanel コントロールは、その内容を水平または垂...
-[[FlowLayoutPanel コントロール (Windows フォーム)>http:/...
言葉で説明するより、実際に使ってみるのが一番早いというわ...
-[[FlowLayoutPanelコントロールの基本的な使い方>https://do...
このサンプルは、フォームにFlowLayoutPanelコントロールを配...
FlowLayoutPanelコントロールには、重要なプロパティとして、...
サンプル「FlowLayoutPanel1.exe」では、FlowDirectionとWrap...
***AnchorとDockプロパティ [#w9057de1]
FlowLayoutPanelコントロールに配置された子コントロールは、...
-[[方法 : FlowLayoutPanel コントロールで子コントロールを...
これを実際に確認するためのサンプルが次に紹介する「FlowLay...
-[[FlowLayoutPanelコントロールの基本的な使い方>https://do...
このサンプルでは、様々な大きさのButtonコントロールがFlowL...
例えば、FlowLayoutPanelのFlowDirectionプロパティがLeftToR...
Dockプロパティも同様に、Topで一番上、Bottomで一番下、Fill...
***FlowBreakプロパティ [#z8ef084e]
さらにこのサンプルでは、FlowLayoutPanelコントロールに配置...
FlowBreakプロパティはVS 2005のデザイナのプロパティウィン...
#code(vbnet){{
FlowLayoutPanel1.SetFlowBreak(Button1, True)
}}
#code(csharp){{
FlowLayoutPanel1.SetFlowBreak(Button1, true);
}}
また、Button1のFlowBreakの状態を調べるには、FlowLayoutPan...
***コントロールの順番を変更する [#z34ef817]
#column(注意){{
この記事の最新版は「[[FlowLayoutPanelに配置されたコントロ...
}}
FlowLayoutPanelに配置されるコントロールの順番は、FlowLayo...
サンプル「FlowLayoutPanel2.exe」で、コントロールを先頭に...
#code(vbnet){{
'移動先の位置
Dim newIndex As Integer = 0
Dim conts As New List(Of Control)
FlowLayoutPanel1.SuspendLayout()
'flowLayoutPanel1内のコントロールを記憶&削除
Dim i As Integer
For i = FlowLayoutPanel1.Controls.Count - 1 To newIndex S...
If Not FlowLayoutPanel1.Controls(i).Equals(currentBut...
conts.Insert(0, FlowLayoutPanel1.Controls(i))
End If
FlowLayoutPanel1.Controls.RemoveAt(i)
Next i
'移動するコントロールがまだあるときは、削除
If FlowLayoutPanel1.Controls.IndexOf(currentButton) > -1 ...
FlowLayoutPanel1.Controls.Remove(currentButton)
End If
'移動するコントロールを追加
FlowLayoutPanel1.Controls.Add(currentButton)
'残りのコントロールを追加
FlowLayoutPanel1.Controls.AddRange(conts.ToArray())
FlowLayoutPanel1.ResumeLayout()
}}
#code(csharp){{
//移動先の位置
int newIndex = 0;
List<Control> conts = new List<Control>();
flowLayoutPanel1.SuspendLayout();
//flowLayoutPanel1内のコントロールを記憶&削除
for (int i = flowLayoutPanel1.Controls.Count - 1; i >= ne...
{
if (!flowLayoutPanel1.Controls[i].Equals(currentButto...
conts.Insert(0, flowLayoutPanel1.Controls[i]);
flowLayoutPanel1.Controls.RemoveAt(i);
}
//移動するコントロールがまだあるときは、削除
if (flowLayoutPanel1.Controls.IndexOf(currentButton) > -1)
flowLayoutPanel1.Controls.Remove(currentButton);
//移動するコントロールを追加
flowLayoutPanel1.Controls.Add(currentButton);
//残りのコントロールを追加
flowLayoutPanel1.Controls.AddRange(conts.ToArray());
flowLayoutPanel1.ResumeLayout();
}}
***TableLayoutPanelコントロール [#ca1c4628]
#column(注意){{
この記事の最新版は「[[TableLayoutPanelコントロールの基本...
}}
TableLayoutPanelコントロールは、まるでHTMLのTABLEタグのよ...
TableLayoutPanel コントロールは、実行時に比例的なサイズ変...
-[[TableLayoutPanel コントロール (Windows フォーム)>http:...
MSDNの「TableLayoutPanel コントロールの推奨される手順」で...
-[[TableLayoutPanel コントロールの推奨される手順>http://m...
これによると、親フォームのサイズ変更や、ローカリゼーショ...
TableLayoutPanelコントロールの使い方は、MSDNの「TableLayo...
なお、TableLayoutPanelコントロールの実際の挙動を確かめる...
-[[TableLayoutPanelコントロールの基本的な使い方>https://d...
***TableLayoutPanelコントロールにコントロールを追加する [...
MSDNでは、フォームデザイナを使った方法が次のページなどで...
-[[チュートリアル : TableLayoutPanel を使用した Windows ...
-[[チュートリアル : データ入力用のサイズ変更可能な Window...
TableLayoutPanelコントロール内にコントロールを配置するに...
-[[TableLayoutControlCollection.Add メソッド>http://msdn2...
TableLayoutPanelコントロールは一つのセルに一つのコントロ...
Controls.Addでは挿入位置を指定しなくても大丈夫です。挿入...
すべてのセルがすでに埋まっている時に新しいコントロールを...
次の例では、insertRowとinsertColumnで指定された位置にButt...
#code(vbnet){{
'挿入位置
Dim insertRow As Integer = 0
Dim insertColumn As Integer = 0
If TableLayoutPanel1.GetControlFromPosition( _
insertColumn, insertRow) Is Nothing Then
Dim newButton As New Button()
newButton.Text = "button"
TableLayoutPanel1.Controls.Add( _
newButton, insertColumn, insertRow)
End If
}}
#code(csharp){{
//挿入位置
int insertRow = 0;
int insertColumn = 0;
if (tableLayoutPanel1.GetControlFromPosition(
insertColumn, insertRow) == null)
{
Button newButton = new Button();
newButton.Text = "button";
tableLayoutPanel1.Controls.Add(newButton, insertColum...
}
}}
サンプル「TableLayoutPanel1.exe」でも、メニューから簡単に...
***子コントロールの位置の取得(GetCellPositionとGetPositi...
TableLayoutPanelに配置されたコントロールが占有しているセ...
例えば、列数が十分にあるTableLayoutPanel「tableLayoutPane...
#code(vbnet){{
tableLayoutPanel1.Controls.Add(button1, 0, 0)
tableLayoutPanel1.Controls.Add(button2, 1, 0)
}}
#code(csharp){{
tableLayoutPanel1.Controls.Add(button1, 0, 0);
tableLayoutPanel1.Controls.Add(button2, 1, 0);
}}
このときは、button1に対してGetCellPositionとGetPositionFr...
さて、さらにbutton3を次のように追加すると、どうなるでしょ...
#code(vbnet){{
tableLayoutPanel1.Controls.Add(button3, 0, 0)
}}
#code(csharp){{
tableLayoutPanel1.Controls.Add(button3, 0, 0);
}}
button3が(0,0)に入ることにより、button1は(1,0)に、button2...
つまり、GetPositionFromControlは現在実際にコントロールが...
VS2005のフォームデザイナのみでコントロールを配置した場合...
MSDNには、
「GetPositionFromControl メソッドは、位置が LayoutEngine ...
とありますが、これはこういう意味だったのです。
-[[TableLayoutPanel.GetPositionFromControl メソッド >http...
***Controls.Addで指定した位置に配置できない?! [#afddf87b]
上で紹介した例に、次のようにしてもう一つbuttonを追加して...
#code(vbnet){{
tableLayoutPanel1.Controls.Add(button4, 1, 0)
}}
#code(csharp){{
tableLayoutPanel1.Controls.Add(button4, 1, 0);
}}
ちょっと意外ですが、button4は(2,0)の位置、つまりbutton1と...
それでは、間違いなく指定した位置のセルにコントロールを配...
#code(vbnet){{
Dim c As Control
For Each c In TableLayoutPanel1.Controls
TableLayoutPanel1.SetCellPosition( _
c, TableLayoutPanel1.GetPositionFromControl(c))
Next c
}}
#code(csharp){{
foreach (Control c in tableLayoutPanel1.Controls)
{
tableLayoutPanel1.SetCellPosition(
c,
tableLayoutPanel1.GetPositionFromControl(c));
}
}}
***ColumnCountとRowCountは実際のTableLayoutPanelの列数と...
これもまた分かりにくい話ですが、TableLayoutPanelのColumnC...
-[[TableLayoutPanel.ColumnCount プロパティ>http://msdn2.m...
それでは実際の列数と行数を取得するにはどのようにすればよ...
今回、予想外に記事が長くなってしまいましたので、きりが良...
**コメント [#qab01a0c]
#comment
//これより下は編集しないでください
#pageinfo([[:Category/.NET]],2006-05-20 (土) 06:00:00,DOB...
終了行:
#title(.NETプログラミング研究 第69号)
#navi(.NETプログラミング研究)
#contents
*.NETプログラミング研究 第69号 [#aef76f38]
**.NET Tips [#l3fd7d51]
今回は、.NET Framework 2.0から追加されたWindowsアプリケー...
***FlowLayoutPanelコントロール [#yd1425ee]
#column(注意){{
この記事の最新版は「[[FlowLayoutPanelコントロールの基本的...
}}
FlowLayoutPanelコントロールについて、MSDNでは次のように説...
「FlowLayoutPanel コントロールは、その内容を水平または垂...
-[[FlowLayoutPanel コントロール (Windows フォーム)>http:/...
言葉で説明するより、実際に使ってみるのが一番早いというわ...
-[[FlowLayoutPanelコントロールの基本的な使い方>https://do...
このサンプルは、フォームにFlowLayoutPanelコントロールを配...
FlowLayoutPanelコントロールには、重要なプロパティとして、...
サンプル「FlowLayoutPanel1.exe」では、FlowDirectionとWrap...
***AnchorとDockプロパティ [#w9057de1]
FlowLayoutPanelコントロールに配置された子コントロールは、...
-[[方法 : FlowLayoutPanel コントロールで子コントロールを...
これを実際に確認するためのサンプルが次に紹介する「FlowLay...
-[[FlowLayoutPanelコントロールの基本的な使い方>https://do...
このサンプルでは、様々な大きさのButtonコントロールがFlowL...
例えば、FlowLayoutPanelのFlowDirectionプロパティがLeftToR...
Dockプロパティも同様に、Topで一番上、Bottomで一番下、Fill...
***FlowBreakプロパティ [#z8ef084e]
さらにこのサンプルでは、FlowLayoutPanelコントロールに配置...
FlowBreakプロパティはVS 2005のデザイナのプロパティウィン...
#code(vbnet){{
FlowLayoutPanel1.SetFlowBreak(Button1, True)
}}
#code(csharp){{
FlowLayoutPanel1.SetFlowBreak(Button1, true);
}}
また、Button1のFlowBreakの状態を調べるには、FlowLayoutPan...
***コントロールの順番を変更する [#z34ef817]
#column(注意){{
この記事の最新版は「[[FlowLayoutPanelに配置されたコントロ...
}}
FlowLayoutPanelに配置されるコントロールの順番は、FlowLayo...
サンプル「FlowLayoutPanel2.exe」で、コントロールを先頭に...
#code(vbnet){{
'移動先の位置
Dim newIndex As Integer = 0
Dim conts As New List(Of Control)
FlowLayoutPanel1.SuspendLayout()
'flowLayoutPanel1内のコントロールを記憶&削除
Dim i As Integer
For i = FlowLayoutPanel1.Controls.Count - 1 To newIndex S...
If Not FlowLayoutPanel1.Controls(i).Equals(currentBut...
conts.Insert(0, FlowLayoutPanel1.Controls(i))
End If
FlowLayoutPanel1.Controls.RemoveAt(i)
Next i
'移動するコントロールがまだあるときは、削除
If FlowLayoutPanel1.Controls.IndexOf(currentButton) > -1 ...
FlowLayoutPanel1.Controls.Remove(currentButton)
End If
'移動するコントロールを追加
FlowLayoutPanel1.Controls.Add(currentButton)
'残りのコントロールを追加
FlowLayoutPanel1.Controls.AddRange(conts.ToArray())
FlowLayoutPanel1.ResumeLayout()
}}
#code(csharp){{
//移動先の位置
int newIndex = 0;
List<Control> conts = new List<Control>();
flowLayoutPanel1.SuspendLayout();
//flowLayoutPanel1内のコントロールを記憶&削除
for (int i = flowLayoutPanel1.Controls.Count - 1; i >= ne...
{
if (!flowLayoutPanel1.Controls[i].Equals(currentButto...
conts.Insert(0, flowLayoutPanel1.Controls[i]);
flowLayoutPanel1.Controls.RemoveAt(i);
}
//移動するコントロールがまだあるときは、削除
if (flowLayoutPanel1.Controls.IndexOf(currentButton) > -1)
flowLayoutPanel1.Controls.Remove(currentButton);
//移動するコントロールを追加
flowLayoutPanel1.Controls.Add(currentButton);
//残りのコントロールを追加
flowLayoutPanel1.Controls.AddRange(conts.ToArray());
flowLayoutPanel1.ResumeLayout();
}}
***TableLayoutPanelコントロール [#ca1c4628]
#column(注意){{
この記事の最新版は「[[TableLayoutPanelコントロールの基本...
}}
TableLayoutPanelコントロールは、まるでHTMLのTABLEタグのよ...
TableLayoutPanel コントロールは、実行時に比例的なサイズ変...
-[[TableLayoutPanel コントロール (Windows フォーム)>http:...
MSDNの「TableLayoutPanel コントロールの推奨される手順」で...
-[[TableLayoutPanel コントロールの推奨される手順>http://m...
これによると、親フォームのサイズ変更や、ローカリゼーショ...
TableLayoutPanelコントロールの使い方は、MSDNの「TableLayo...
なお、TableLayoutPanelコントロールの実際の挙動を確かめる...
-[[TableLayoutPanelコントロールの基本的な使い方>https://d...
***TableLayoutPanelコントロールにコントロールを追加する [...
MSDNでは、フォームデザイナを使った方法が次のページなどで...
-[[チュートリアル : TableLayoutPanel を使用した Windows ...
-[[チュートリアル : データ入力用のサイズ変更可能な Window...
TableLayoutPanelコントロール内にコントロールを配置するに...
-[[TableLayoutControlCollection.Add メソッド>http://msdn2...
TableLayoutPanelコントロールは一つのセルに一つのコントロ...
Controls.Addでは挿入位置を指定しなくても大丈夫です。挿入...
すべてのセルがすでに埋まっている時に新しいコントロールを...
次の例では、insertRowとinsertColumnで指定された位置にButt...
#code(vbnet){{
'挿入位置
Dim insertRow As Integer = 0
Dim insertColumn As Integer = 0
If TableLayoutPanel1.GetControlFromPosition( _
insertColumn, insertRow) Is Nothing Then
Dim newButton As New Button()
newButton.Text = "button"
TableLayoutPanel1.Controls.Add( _
newButton, insertColumn, insertRow)
End If
}}
#code(csharp){{
//挿入位置
int insertRow = 0;
int insertColumn = 0;
if (tableLayoutPanel1.GetControlFromPosition(
insertColumn, insertRow) == null)
{
Button newButton = new Button();
newButton.Text = "button";
tableLayoutPanel1.Controls.Add(newButton, insertColum...
}
}}
サンプル「TableLayoutPanel1.exe」でも、メニューから簡単に...
***子コントロールの位置の取得(GetCellPositionとGetPositi...
TableLayoutPanelに配置されたコントロールが占有しているセ...
例えば、列数が十分にあるTableLayoutPanel「tableLayoutPane...
#code(vbnet){{
tableLayoutPanel1.Controls.Add(button1, 0, 0)
tableLayoutPanel1.Controls.Add(button2, 1, 0)
}}
#code(csharp){{
tableLayoutPanel1.Controls.Add(button1, 0, 0);
tableLayoutPanel1.Controls.Add(button2, 1, 0);
}}
このときは、button1に対してGetCellPositionとGetPositionFr...
さて、さらにbutton3を次のように追加すると、どうなるでしょ...
#code(vbnet){{
tableLayoutPanel1.Controls.Add(button3, 0, 0)
}}
#code(csharp){{
tableLayoutPanel1.Controls.Add(button3, 0, 0);
}}
button3が(0,0)に入ることにより、button1は(1,0)に、button2...
つまり、GetPositionFromControlは現在実際にコントロールが...
VS2005のフォームデザイナのみでコントロールを配置した場合...
MSDNには、
「GetPositionFromControl メソッドは、位置が LayoutEngine ...
とありますが、これはこういう意味だったのです。
-[[TableLayoutPanel.GetPositionFromControl メソッド >http...
***Controls.Addで指定した位置に配置できない?! [#afddf87b]
上で紹介した例に、次のようにしてもう一つbuttonを追加して...
#code(vbnet){{
tableLayoutPanel1.Controls.Add(button4, 1, 0)
}}
#code(csharp){{
tableLayoutPanel1.Controls.Add(button4, 1, 0);
}}
ちょっと意外ですが、button4は(2,0)の位置、つまりbutton1と...
それでは、間違いなく指定した位置のセルにコントロールを配...
#code(vbnet){{
Dim c As Control
For Each c In TableLayoutPanel1.Controls
TableLayoutPanel1.SetCellPosition( _
c, TableLayoutPanel1.GetPositionFromControl(c))
Next c
}}
#code(csharp){{
foreach (Control c in tableLayoutPanel1.Controls)
{
tableLayoutPanel1.SetCellPosition(
c,
tableLayoutPanel1.GetPositionFromControl(c));
}
}}
***ColumnCountとRowCountは実際のTableLayoutPanelの列数と...
これもまた分かりにくい話ですが、TableLayoutPanelのColumnC...
-[[TableLayoutPanel.ColumnCount プロパティ>http://msdn2.m...
それでは実際の列数と行数を取得するにはどのようにすればよ...
今回、予想外に記事が長くなってしまいましたので、きりが良...
**コメント [#qab01a0c]
#comment
//これより下は編集しないでください
#pageinfo([[:Category/.NET]],2006-05-20 (土) 06:00:00,DOB...
ページ名:
▲
▼
[
トップ
] [
新規
|
子ページ作成
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]