我有一個用戶控制圖中我的Form 1設計,這是調整它的代碼:爲什麼在調整用戶控件圖形的大小時不會調整大小?
private void graphChart1_MouseEnter(object sender, EventArgs e)
{
graphChart1.Size = new Size(600, 600);
}
當我把鼠標移動到控制區域它不調整其大小使其變大,但是刪除了一些其他控件。
這是一個圖像之前,我將鼠標移動控制:
,這是一個圖像,當我移動鼠標控制:
這是圖表所在的用戶控件的代碼:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Web;
using System.Windows.Forms.DataVisualization.Charting;
namespace GatherLinks
{
public partial class GraphChart : UserControl
{
public GraphChart()
{
InitializeComponent();
}
private double f(int i)
{
var f1 = 59894 - (8128 * i) + (262 * i * i) - (1.6 * i * i * i);
return f1;
}
private void GraphChart_Load(object sender, EventArgs e)
{
chart1.Series.Clear();
var series1 = new System.Windows.Forms.DataVisualization.Charting.Series
{
Name = "Series1",
Color = System.Drawing.Color.Green,
IsVisibleInLegend = false,
IsXValueIndexed = true,
ChartType = SeriesChartType.Line
};
this.chart1.Series.Add(series1);
for (int i = 0; i < 100; i++)
{
series1.Points.AddXY(i, f(i));
}
chart1.Invalidate();
}
}
}
編輯:
我這樣做是在用戶控件類代碼:
public void ChangeChartSize(int width, int height)
{
chart1.Size = new Size(width, height);
chart1.Invalidate();
}
我不得不添加chart1.Invalidate();
使其生效,但隨後大小的用戶控件中的圖表它的自我。用戶控件沒有改變。
所以在Form1鼠標輸入我也改變了graphChart1控制大小:
private void graphChart1_MouseEnter(object sender, EventArgs e)
{
graphChart1.ChangeChartSize(600, 600);
graphChart1.Size = new Size(600, 600);
}
的問題是,現在它採取了大量的時間將近20秒左右,直到它生效,當我將鼠標移動到控件上。如果我將刪除第二行:
graphChart1.Size = new Size(600, 600);
它會工作的很快,但它會改變圖表只在控件內,但它不會改變控件大小。
也試圖與無效:
private void graphChart1_MouseEnter(object sender, EventArgs e)
{
graphChart1.ChangeChartSize(600, 600);
graphChart1.Size = new Size(600, 600);
graphChart1.Invalidate();
}
但仍然十分緩慢。也許我需要在用戶控件類代碼中更改自身大小的控件,而不是在Form1中?
一般來說,我想要做到這一點,當我用鼠標移動控制這個圖表用戶控件時,它將被調整大小,並且將它的位置改變到屏幕中心,然後當我將鼠標移出用戶控制圖表時將回到原來的位置和大小。 – user2065612 2013-02-28 22:20:05
也許我還需要調整它自己的用戶控件大小?而不僅僅是圖表? – user2065612 2013-02-28 22:20:28
尼古拉我試圖讓graphChart1.Invalidate();緊跟在graphChart1.Size行之後,但直到事件發生變化但它沒有幫助才使其變慢,但是與上面相同的問題。 – user2065612 2013-02-28 22:27:42