Thi*_*Use 3 c# redraw visual-studio winforms
我不确定要寻找的是“重绘” ...我是手工设计Windows表单的新手。我创建了一个将使用“ TableLayoutPanel”作为传递变量的类,并在该表布局面板中进行了自己的设计,以便可以重用控件并调整其参数以适合其包含的数据。
我有一个事件,它将在调整框架大小时重新绘制控件,效果很好。但是,当我第一次使用.Show()表单时,它不会显示class中的任何子控件。如果我手动调用Resize事件中调用的“ resize”方法,它也不会重绘自身。
我得到的只是一个空白的“ TableLayoutPanel”,直到我手动调整了在父TableLayoutPanel上调用“ Resize”事件的窗口的大小。
这是我的类的正式版本,其中删除了与方法无关的方法:
public class DataTableFrame : Form
{
TableLayoutPanel MyFrame;
Size ParentSize;
int Row = 1;
int Col = 1;
int LabelWidth = 75;
int TextWidth = 150;
List<DataObject> MyData = new List<DataObject>();
public class DataObject
{...
}
public DataTableFrame() { }
public DataTableFrame(TableLayoutPanel Parent)
{
MyFrame = Parent;
MyFrame.AutoScroll = true;
ParentSize = MyFrame.Size;
MyFrame.Layout += new LayoutEventHandler(MyFrame_Layout);
}
void MyFrame_Layout(object sender, LayoutEventArgs e)...
public void AddData(string Label, string Data)...
public void EvaluateRowCol()...
public void RowsColums(int Rows, int Cols)...
public void PopulateControls()...
public void Refresh()
{
// What do I put here to force a redraw???
}
}
Run Code Online (Sandbox Code Playgroud)
尝试
this.Invalidate(); //Refreshes or invoke the control to redraw
Run Code Online (Sandbox Code Playgroud)
要么
this.Refresh();
Run Code Online (Sandbox Code Playgroud)
注意:Refresh()已经在Form对象属性中,您无需声明它。
| 归档时间: |
|
| 查看次数: |
10844 次 |
| 最近记录: |