-1
A
回答
1
瓦埃勒的答案確實給你的推薦方法:創建一個UserControl
和它要麼添加到FlowLayoutPanel
或一個TableLayoutPanel
。
一件事UserControls
確實需要一些注意:您添加的所有控制它是私人並不能很容易地訪問,甚至當你添加UC在設計師Form
..
所以你應該改變它們的修飾符爲public
或者(推薦)創建一組不錯的接口例程,最好使用Properties
或者使用方法來填充內容..
下面是一個小例子,向您展示如何這可以做到:
正如你可以看到我只有兩個Labels
有加,一個TextBox
,一個PictureBox
和Button
。
這裏是訪問例程的代碼;我已經寫了它來顯示幾個變化..
它使用幾個屬性,一個完整的,一個只讀和一個自動。也裝載常規,超負荷的最後一個委託照顧Button
點擊..:
public partial class InfoBox : UserControl
{
public InfoBox()
{
InitializeComponent();
TextBox1 = textBox1; // hook up the automatic property
}
public string Label1Text // two-way, fully hooked-up
{
get { return label1.Text; }
set { label1.Text = value; }
}
public string Label2Text { get { return label2.Text; } } // read-only
public TextBox TextBox1 { get; set; } // automatic
public void LoadImage(Image img)
{
pictureBox1.Image = img;
if (img != null) label2.Text = img.Width + "x" + img.Height;
else label2.Text = "no image loaded.";
}
public void LoadImage(string imageFileName)
{
LoadImage(Image.FromFile(imageFileName));
}
private void button1_Click(object sender, EventArgs e)
{
if (Button1Click != null) Button1Click(this);
}
public Button1Click Button1Click { private get; set; }
}
public delegate void Button1Click(InfoBox ibox);
注意,委託類型的類之外定義,所以我們仍然可以看到它從其他地方直接。
另外請注意,自動屬性實際上是暴露整個TextBox
,不只是迷上了它的Text
屬性!還是那句話:這是指以展示各種可能性..
下面是如何這樣一個信息框加載到FlowLayoutPanel
並設置其內容的例子和Button
行動:
private void Form1_Load(object sender, EventArgs e)
{
InfoBox aBox = new InfoBox();
aBox.TextBox1.Text = "<Comment>";
aBox.LoadImage("D:\\stop32.png"); // some image file
aBox.Button1Click = myButton1Action;
flowLayoutPanel1.Controls.Add(aBox);
}
void myButton1Action (InfoBox box)
{
Console.WriteLine(box.Label2Text);
}
2
您可以使用以下控件來實現你想要的:
FlowLayoutPanel
Panel
TextBox
PictureBox
Button
使用FlowLayoutPanel
自動排列控件。
我建議創建一個windows窗體用戶控件,使輸入窗體然後將其添加到FlowLayoutPanel
。
在用戶的控制,你可以使用Panel
放置裏面以下控件:
TextBox
爲「RTL標籤」,「LTR標籤」,「數」,「文字標籤」。PictureBox
for'Picture'。Button
按鈕。這裏是關於如何創建一個Windows窗體用戶控件的link。
相關問題
- 1. 黑莓網格佈局自定義
- 2. SharePoint - 我的網站 - 自定義(佈局)
- 3. c#GridDataView的自定義佈局
- 4. 自定義佈局
- 5. MVC網站後臺自定義佈局
- 6. 自定義佈局作爲網格視圖的項目
- 7. 自定義日曆的Android網格佈局
- 8. 將自定義按鈕動態分配到自定義網格佈局
- 9. 自定義佈局的Android
- 10. 自定義佈局的Java
- 11. RadioButton的自定義佈局
- 12. 自定義佈局Magento的
- 13. asp.net - 列表/網格視圖自定義佈局
- 14. 自定義UITableViewCell創建一個網格佈局
- 15. 2x3自定義按鈕網格佈局不適合TableRow
- 16. BootMetro限定網格佈局
- 17. Android自定義佈局(sneekbar)
- 18. 自定義佈局ActionBarSherlock
- 19. 自定義抽屜佈局
- 20. 自定義Android佈局
- 21. ContextMenuStrip自定義佈局
- 22. Log4j2自定義佈局
- 23. iPhone UITableViewController自定義佈局
- 24. BlackBerry - 自定義佈局
- 25. ListActivity佈局自定義
- 26. 自定義佈局ListPreference
- 27. 自定義圖案佈局
- 28. 自定義AutoCompleteTextView佈局android
- 29. UICollectionView自定義佈局
- 30. 自定義評論佈局
創建一個用戶控件用填充元素的公共方法,如果你需要它,委託按鈕調用.. – TaW