コードエディタ(winform)に取り組んでいます
そして、次のようなラベルを使用してカウントラインに取り組んでいます:
http://oi42.tinypic.com/iypoub.jpg
このコードを使用して:
private void timer_countline_Tick(object sender, EventArgs e)
{
updateNumberLabel();
}
private void updateNumberLabel()
{
//we get index of first visible char and number of first visible line
Point pos = new Point(0, 0);
int firstIndex = rtb.GetCharIndexFromPosition(pos);
int firstLine = rtb.GetLineFromCharIndex(firstIndex);
//now we get index of last visible char and number of last visible line
pos.X = ClientRectangle.Width;
pos.Y = ClientRectangle.Height;
int lastIndex = rtb.GetCharIndexFromPosition(pos);
int lastLine = rtb.GetLineFromCharIndex(lastIndex);
//this is point position of last visible char, we'll use its Y value for calculating numberLabel size
pos = rtb.GetPositionFromCharIndex(lastIndex);
//finally, renumber label
numberLabel.Text = "";
for (int i = firstLine; i <= lastLine + 1; i++)
{
numberLabel.Text += i + 1 + "\n";
}
}
タイマーは間隔を 1 に設定します。ラベル ドック = 左 . 今問題は、プログラムを実行するたびに、ラベルがノンストップで非常に速く点滅していたことです。私が変更しても間隔は同じです。
しかし、updateNumberLabel() を textchange イベントに転送すると、richtextbox に char を追加するか space を押すたびに点滅します。
このように: http://oi40.tinypic.com/a43gcy.jpg
今私の質問は、どうすればこれを回避できますか? または、更新時にラベル全体が点滅するのを避けるためにできることはありますか?
助けてくれてありがとう!