永发信息网

C# WinForm 三方控件SideBar的用法.

答案:1  悬赏:20  手机版
解决时间 2021-04-23 05:30
有没有哪位同志有三方控件SideBar的用法.方便的话Copy来看下,也可以发邮箱java200613886@vip.qq.com,谢谢!
最佳答案

你想做QQ吧!呵呵:


第一步就是在工具箱里面把这个控件添加进来,工具箱上添加一个选项卡,点击右键,添加项,再选到刚才下载到的DLL文件。


下面介绍一下这个控件的属性


imageList 这个是绑定到ImageList控件上,显示头像时就直接用到ImageList的序号


ItemContextMenuStrip 子项的右键菜单


Viw 显示的样式


sideBar先有组再有成员,所以要在sideBar上添加几个组,添加方法


sideBar.AddGroup(“这个是组的名称”)


有了组后就要在组里面添加成员,添加方法


sideBar1.Groups[i].Items.Add("成员名称",12); 后面这个12就是这个成员绑定的图片的序号(头像,QQ那样前面有个图片头像)


子项上右键显示菜单,像ListView一样,sideBar也有HitTest这个功能,但用起来相差就很大了,如下面那样才能实现:


Point p = sideBar1.PointToClient (MousePosition );
if (e.Button == MouseButtons.Right)
{
if (sideBar1.SeletedItem != null && sideBar1.SeletedItem.HitTest (p.X,p.Y) == true )
{
contextMenuStrip1.Show(MousePosition);
}
}


这样就可以完成sidebar的设置了。


---------------------------------------------------------------------------用法


SideBar控件应用与MyQQ的相关设计







首先导入一个包using Aptech.UI;


在窗体的加载事件中:


private void frmMain_Load(object sender, EventArgs e)
{


//调用ShowPersonalInfo()方法显示个人头像信息
ShowPersonalInfo();


//在sideBar控件中分三个组
sbFriends.AddGroup("QQ好友");
sbFriends.AddGroup("陌生人");
sbFriends.AddGroup("QQ群");


//调用ShowFriendsList()方法显示好友
ShowFriendsList();


}


当然,要记得在窗体拖入一个ImageList控件,更名为ilFaces(sideBar更名为sbFriends);在sideBar的ImageList属性中选择ilFaces。并且为ilFaces导入一些.ico文件。


//用户自定义一个ShowFriendList()方法


public void ShowFriendsList()
{
//清空好友组元素
sbFriends.Groups[0].Items.Clear();


try
{
//创建Connection对象
SqlConnection sqlConn = new SqlConnection("server=.;database=MyQQ;trusted_connection=true");
//创建Command对象
SqlCommand sqlComm = new SqlCommand("select NickName, FaceId, FriendId from Users, Friends where Friends.HostId = " + RecordUserId.loginId +" and Users.Id = Friends.FriendId", sqlConn);
sqlConn.Open();
//执行查询命令
SqlDataReader reader = sqlComm.ExecuteReader();


while (reader.Read())
{
//实例化SbItem对象,需要一个字符串和一个整形值座位参数
SbItem item = new SbItem((string)reader["NickName"], (int)reader["FaceId"]);
//把查询出来的好友帐号赋值给item的Tag标签
item.Tag = (int)reader["FriendId"];
//把item对象添加到好友组中
sbFriends.Groups[0].Items.Add(item);
}


reader.Close();
//关闭连接
sqlConn.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}


}


这里很巧妙的使用了item对象的Tag标签。如何获得标签中的数据呢?下面定义一个方法演示灵活应用Tag中保存的数据:


//判断是否已显示为好友
private bool HasShowFriend(int friendId)
{
bool result = false;


for (int i = 0; i < 2; i++)
{
for (int j = 0; j < sbFriends.Groups[i].Items.Count; j++)
{
if (Convert.ToInt32(sbFriends.Groups[i].Items[j].Tag) == friendId)
{
result = true;
}
}
}


return result;

希望对你有用
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
谁知道犬夜叉完结篇一共有多少啊?什么时候才
千娇头饰皮包地址在什么地方,想过去办事
怎么制作属于自己的网站,可以自己放软件进去
中国人寿买保险是先从卡里扣钱在签合同?怎样
分析英语语法选择题“what do you prefer, __
担当与责任的古诗词,关于责任的诗句
佐助和鼬的战争
成语有个成语叫盘根什么节?
黑泉水库2号高架桥地址在什么地方,想过去办
一汽森雅s80abs泵坏了影响怠速高吗?
小刚同学到学校小卖部买了单价七元的一支钢笔
DNF怎么锁装备?
想老同学了,可是太久没联系,该怎么开头?
寻仙在哪抓熊
初中生诗歌怎么写,关于青春的现代诗
推荐资讯
东亚银行24小时自助银行(武汉光谷支行)在哪里
清洗化油器有什么好处?我的化油器浮子室里面
上海劳动力市场在哪里
QQ宠物中,如果学习到20分钟或工作到20分钟的
生日的时候寿星怎样致辞?
中国有多少名篮球运动员在NBA打个球?
武清哪里出售成品
大盘的250日移动平均线怎么看?
美林湖大道/肇花高速公路(路口)在什么地方啊
母狗生完小狗后,会对小狗身上主人的气味感到
有关科学的名言是什么,关于爱科学的名言
炖排骨能和油麦菜一起煮吗
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?