0

我使用的 ProgressBar 可以是 Continuous 或 Blocks 样式(我无法在我的应用程序中启用视觉样式)。

我一步一步地推进使它工作

代码是这样的(在msdn上查看):

private Timer timer = new Timer();
void progressbar1_visibleChanged(object sender, EventArgs e)
{
    var progressb = sender as ProgressBar;
    if (progressb != null && progressb.Visible == true)
    {
        InitializeProgress();
    }
}    

private void InitializeProgress()
{
    progressBar1.Value = 0;
    timer.Interval = 50;
    timer.Tick += new EventHandler(IncreaseProgressBar);
    timer.Start();
}

private void IncreaseProgressBar(object sender, EventArgs e)
{
    if (progressBar1.Value >= progressBar1.Maximum)
    {
        progressBar1.Value = 0;    
    }

    progressBar1.Increment(1);

 }

(并且进度条对执行不同操作的不同工作人员显示\隐藏)

但是,它对我来说看起来很丑,我希望它从左到右\从右到左移动。

我怎样才能做到这一点?

非常感谢

4

1 回答 1

1

您需要将 WinForms 控件的 CurrentCulture 覆盖为从右到左的语言(例如希伯来语 - “he”或“he-IL”),这有点棘手,因为这仅适用于线程(而不是例如表单或控制)。

然后将进度条控件属性“RightToLeft”设置为“Yes”,将“RightToLeftLayout”属性设置为“True”。
现在你的进度条应该是 RTL。如果它没有或更改为 RTL 文化带来的伤害大于它所带来的伤害,那么我能看到的唯一选择就是为这项工作创建一个自定义控件。

希望这可以帮助!

于 2013-04-23T13:03:10.743 回答