2013-09-11 5 views
1

У меня есть 54 кнопки плоский стиль = плоский, и я вручную разработал каждый из них с изображением наведите курсор мыши и выйдя мыши w/c, все они имеют одинаковый дизайн , Что делать, чтобы сделать его более простым, чем выполнение кода мыши и мыши на каждой кнопке.кнопка перегрузки в визуальной студии C# .net

+1

Какие рамки вы используете? Windows Forms? WPF? Silverlight? Если вы используете Forms, то это возможный дубликат: http://stackoverflow.com/questions/13090639/how-to-apply-same-style-on-all-buttons-in-windows-form –

+1

Вы можете установите кнопку вверх в качестве настраиваемого элемента управления, введя и оставьте поведение мыши. Выставлять наведение и обычные пути изображения в конструкторе или в качестве публичных реквизитов. – mrtig

+0

Я использую приложение windows form sir. –

ответ

1

Поскольку вы не указали, я возьму winforms.

Итак, вы получили 54 кнопки, и вы вручную закодировать до предположительно 108 методов (54 для мыши ввести & 54 для отпуска мыши)

Что вы могли бы сделать, это создать объект для хранения кнопку-> изображение info и сохраните все это в словаре. Введите его кнопкой Id. т.е.

public class ButtonImageInfo 
{ 
    public string ButtonId {get;set;} 
    public string MouseEnterImage {get;set;} 
    public string MouseLeaveImage {get;set;} 
} 

// ... 
public Dictionary<string, ButtonImageInfo> _dict = new ... 
_dict.Add("Button1", new ButtonImageInfo ("Button1", "Image1Enter", "Image1Leave")); 
/// ... etc... 

Это позволит вам закодировать одну OnMouseEnter & один методов OnMouseLeave и применить их к каждой кнопке.

Тогда вы должны просто получить правильное изображение на основе идентификатора отправителя.

private void MouseLeaveEvent(object sender, EventArgs e) 
    { 
    Button b = sender as Button; 
    if(b != null) 
    { 
      string id = b.Id; 
      //Do Something with _dict[id].MouseLeaveImage 
    } 
    } 

    private void MouseEnterEvent(object sender, EventArgs e) 
    { 
    Button b = sender as Button; 
    if(b != null) 
    { 
      string id = b.Id; 
      //Do Something with _dict[id].MouseEnterImage 
    } 
    } 
+0

sir im done добавление класса в мою форму ButtonImageInfo и мой вопрос - где я должен кодировать этот «private void MouseLeaveEvent (object sender, EventArgs e)»? Это нужно добавить в мою форму. –

+0

yep. В том же месте, что и существующие методы ввода мыши/мыши. –

+0

Вы имеете в виду все, что мне нужно, это щелкнуть по одной кнопке и изменить методы ввода мыши/мыши и поместить все мои кнопки там, чтобы она была в одном методе. Можете ли вы дать мне и пример сэр. Сэр, вы можете создать мне класс в buttonimageinfo, потому что я столкнулся с проблемой, чтобы я мог напрямую добавить существующий файл в свою форму. –

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