-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. SharePoint - 我的网站 - 自定义(布局)
- 2. c#GridDataView的自定义布局
- 3. MVC网站后台自定义布局
- 4. 自定义日历的Android网格布局
- 5. 将自定义按钮动态分配到自定义网格布局
- 6. RadioButton的自定义布局
- 7. 自定义UITableViewCell创建一个网格布局
- 8. 2x3自定义按钮网格布局不适合TableRow
- 9. iPhone UITableViewController自定义布局
- 10. 自定义布局ListPreference
- 11. ListActivity布局自定义
- 12. BlackBerry - 自定义布局
- 13. Android自定义布局
- 14. Android自定义ListViewItem布局
- 15. QML自定义布局
- 16. Java自定义Web布局
- 17. Android - 自定义AutoCompleteTextView布局
- 18. ContextMenuStrip自定义布局
- 19. 自定义Android布局
- 20. 缩放自定义布局
- 21. 自定义UICollectionView布局
- 22. 自定义PopupMenu(布局)
- 23. 自定义布局ActionBarSherlock
- 24. Android - 自定义布局Inflater
- 25. AndroidResideMenu自定义布局
- 26. 自定义静态布局
- 27. 网格布局
- 28. 网格布局
- 29. C#PrintDocument - 表格/网格布局问题
- 30. C#自定义控件的自定义事件WinForm
创建一个用户控件用填充元素的公共方法,如果你需要它,委托按钮调用.. – TaW