2012-02-15 3 views
0

привет атм У меня есть этот кодКак сделать текст текстовых полей перемещаться вперед и назад?

private void checkBox1_CheckedChanged(object sender, EventArgs e) 
    { 
     if (checkBox1.Checked == true) 
     { 
      x = 0; 
      timer1.Enabled = true; 
      timer1.Start(); 
     } 
     else 
     { 
      timer1.Enabled = false; 
     } 
    } 
    private int x = 0; 
    private int y = 0; 
    private void timer1_Tick(object sender, EventArgs e) 
    { 
     if (x <= 10) 
     { 
      x++; 
      string ping = new string(' ', x) + "hello"; 
      label1.Text = ping; 
      if (x == 10) 
      { 
       y = 10; 
      } 
     } 
     else if (y > 0) 
     { 
      y--; 
      string pong = new string(' ', y) + "hello"; 
      label1.Text = pong; 
      if (y == 0) 
      { 
       x = 0; 
      } 
     } 
    } 

в данный момент метка имеет максимальную длину 15 символов и я хочу, чтобы оставаться таким образом.

но я хочу это вместо того, чтобы использовать «привет», чтобы взять текст, который я вводил в текстовое поле, и сделать это.

однако он должен принять 15 и вычесть длину текста текстовых полей, чтобы сохранить максимальную длину ярлыка 15 без изменений, одновременно отображая все слово в текстовом поле, но я не могу понять, как это сделать. Я попробовал много вещей, но я не могу понять, что любая помощь будет очень признательна. : D

+0

Вы можете связать код с [здесь] (http://www.java2s.com/Code/CSharp/GUI-Windows-Form/MarqueeLabelHost.htm), чтобы ваш таймер увеличивал свою позицию на каждом тике. –

+0

Не совсем уверен, что именно вы после. То, что вы, кажется, делаете, это перемещать слово hello справа, а затем влево, заполняя пробелы. Вы можете переместить элемент управления меткой, изменив свойства Left (x) и Top (y). То же самое можно сделать с помощью текстового поля. Я предполагаю, что вы просто экспериментируете с анимацией здесь, а не разрабатываете пользовательский интерфейс. Может быть, слишком много «веселья» для пользователя, чтобы его можно было щелкнуть движущимся текстовым полем. – Swanny

+0

В основном я пытаюсь заменить привет с текстом текстового поля, но максимальная длина ярлыков равна 15, поэтому я не знаю, как включить это. Я бы сделал 15 - textbox1.text.length правильно? но это не позволит мне сделать private int для этого –

ответ

0

Ваше использование слов «ping» и «pong» плюс ваш заголовок, говорящий «перемещение вперед и назад», заставляет меня поверить, что результат, который вы хотите, может быть достигнут путем изменения свойства TextAlign метки на каждом поставить галочку.

Если это результат, который вы хотите, вам не придется добавлять пробелы вообще. Текст будет отображаться слева направо в метке. Вы можете рассмотреть возможность обрезания свойства text с помощью TRIM(), чтобы гарантировать, что на обеих сторонах не должно быть пространств, которые бы отображали неправильное выравнивание.

+0

, как бы я это сделал? im не очень хорошо знакомы с множеством вещей в C# –

+0

также правильно выровнены Я просто хочу, чтобы иметь возможность использовать текстовое поле вместо «hello» –

+0

, но также сохранять максимальную длину ярлыков на значении 15 –

Смежные вопросы