在用戶控制代碼頂部
int myindex = 0;
MainForm mainForm;
建構式
public HistogramaDesenat(MainForm mf)
{
mainForm = mf;
UP();
}
UP法
public void UP()
{
myindex = mainForm.index;
}
在主要形式
public int index = 0;
private void listView1_SelectedIndexChanged(object sender, EventArgs e)
{
if (listView1.SelectedItems.Count > 0)
{
index = listView1.SelectedIndices[0];
histogram.UP();
Histogram.Invalidate();
}
}
在 UP 方法的 usercontrol 類中使用斷點時,我看到 myindex 值正在從主表單中的選定索引中獲取值。
我在串列中選擇了索引 10 中的專案,我在用戶控制元件中看到了該索引

但是當我出于某種原因在用戶控制元件繪制事件中使用變數 myindex 時, myindex 的值是 0 而不是 10 :

private void HistogramaDesenat_Paint(object sender, PaintEventArgs e)
{
if (myIsDrawing)
{
Graphics g = e.Graphics;
Pen myPen1 = new Pen(new SolidBrush(Color.Red), myXUnit);
Pen myPen = new Pen(new SolidBrush(myColor),myXUnit);
//The width of the pen is given by the XUnit for the control.
for (int i=0;i<myValues.Length;i )
{
//We draw each line
g.DrawLine(myPen,
new PointF(myOffset (i*myXUnit), this.Height - myOffset),
new PointF(myOffset (i*myXUnit), this.Height - myOffset - myValues[i] * myYUnit));
//We plot the coresponding index for the maximum value.
if (myValues[i]==myMaxValue)
{
SizeF mySize = g.MeasureString(i.ToString(),myFont);
g.DrawString(i.ToString(),myFont,new SolidBrush(myColor),
new PointF(myOffset (i*myXUnit) - (mySize.Width/2), this.Height - myFont.Height ),
System.Drawing.StringFormat.GenericDefault);
}
}
g.DrawLine(myPen1,
new PointF(myOffset (myindex * myXUnit), this.Height - myOffset),
new PointF(myOffset (myindex * myXUnit), this.Height - myOffset - myValues[myindex] * myYUnit));
uj5u.com熱心網友回復:
C# 區分大小寫。我在listView1_SelectedIndexChanged()方法中看到了這一點:
histogram.UP();
Histogram.Invalidate();
H注意兩行上的小寫和大寫之間的區別。這是兩個不同的變數,可能指的是控制元件的不同實體。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/522129.html
標籤:C#表格
上一篇:Recyclerview選擇位置邊框會出現,未選中邊框不出現-如何在AndroidStudio中進行設計,如高亮位置
