我有一个NavigationBar.cs用户控件。 我也有NavigationItem.cs用户控件。
以下是两者的代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Uboldi.CustomUI
{
public partial class NavigationBar : UserControl
{
public NavigationBar()
{
InitializeComponent();
}
public List<NavigationItem> NavigationItems { private get; set; }
public NavigationItem SelectedItem { get; set; }
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Uboldi.CustomUI
{
public partial class NavigationItem : UserControl
{
public NavigationItem()
{
InitializeComponent();
}
private Image _picture = null;
public Image Picture
{
get
{
return _picture;
}
set
{
_picture = value;
ptbIcon.Image = _picture;
}
}
private string _content = null;
public string Content
{
get
{
return _content;
}
set
{
_content = value;
lblDisplayText.Text = _content;
}
}
}
}
我只希望导航栏中的单个NavigationItem在任何给定时间都被“选中”。
当选择一个项目时,将给它一个不同的颜色。
我的问题是,我应该在哪里编写此代码?在栏中,或者是按钮应该做什么并让栏只调用SetYourSelfAsSelected()方法?
感谢。
答案 0 :(得分:0)
我会在NavigationBar
中实现此功能,原因如下:其他一些开发人员可以在不同的上下文中使用您的NavigationItem
,其中没有标记任何活动项或标记任何不同的项。或者想要重载NavigationBar
以实现活动项的另一种行为。