导航:首页 > 五金知识 > c像工具箱控件

c像工具箱控件

发布时间:2022-07-14 14:27:41

1. c语言tabcontrol控件怎么写

1、首先创建一个MFC对话框框架,在对话框资源上从工具箱中添加上一个Tab Control 控件,根据需要修改一下属性,然后右击控件,为这个控件添加一个变量,
将此控件跟一个CTabCtrl类变量绑定在一起,这里设为m_tabctrl

2、创建两个新的对话框资源,其属性作如下修改:
Border:none //边界为空,这样它就没了标题栏
Style :Child // 这样这个模板就可以当作另一个窗口的子窗口了。
其它如果没有必要,就不用改了。
在上面加一些控件什么的,具体操作跟普通对话框没有区别。
完成后从这两个对话框模板生成两个新的对话框类。

3、在主对话框.h文件中加入新对话框的头文件,并为新添加进来的两个类增加两个变量:
如:
CTabCtrl m_tabctrl;

CDlgTab1 m_dlgtab1;
CDlgTab2 m_dlgtab2;
4、在主对话框的OnInitDialog()函数中添加如下类似的代码:
CRect r; //CRect包含用于定义矩形的左上角和右下角点的成员变量

m_tabctrl.GetClientRect(&r);

TCITEM item1;

TCITEM item2;

item1.mask = TCIF_TEXT;

item1.pszText = _T("第一页");

m_tabctrl.InsertItem(1,&item1);

item2.mask = TCIF_TEXT;

item2.pszText = _T("第二页");

m_tabctrl.InsertItem(2,&item2);

m_dlgtab1.Create (IDD_DLGTAB1,&m_tabctrl);

m_dlgtab2.Create (IDD_DLGTAB2,&m_tabctrl);

m_dlgtab1.SetWindowPos(NULL,10,30,r.right - 20,r.bottom - 40,SWP_SHOWWINDOW);

m_dlgtab2.SetWindowPos(NULL,10,30,r.right - 20,r.bottom - 40,SWP_HIDEWINDOW);

m_tabctrl.SetCurSel(0);
解释如下:
两个InsertItem函数的调用是为了给标签控件增加两个标签页面,文本是标题。
SetWindowPos()函数设置这两个对话框在Z顺序中的位置,显示或隐藏状态。

5、在主对话中为标签控件添加一个标签选择改变(TCN_SELCHANGE)的控件通知消息,以便在用户选择标签时通知主对话框。在主对话框的编辑界面右击标签控件
,选择添加一个事件可以完成这个操作。
在事件处理中添加如下代码,如下例:
void CtabdialogDlg::OnSelchangeTimingtab(NMHDR *pNMHDR, LRESULT *pResult)

{

CRect r;

m_tabctrl.GetClientRect (&r);

switch(m_tabctrl.GetCurSel())

{

case 0:

m_mm1.SetWindowPos (NULL,10,30,r.right -20,r.bottom -40,SWP_SHOWWINDOW);

m_mm2.SetWindowPos (NULL,10,30,r.right -20,r.bottom -40,SWP_HIDEWINDOW );

break;

case 1:

m_mm1.SetWindowPos (NULL,10,30,r.right -20,r.bottom -40,SWP_HIDEWINDOW);

m_mm2.SetWindowPos (NULL,10,30,r.right -20,r.bottom -40,SWP_SHOWWINDOW );

break;

}

*pResult = 0;

}

要想知道用户选择那个标签页,要通过m_tabctrl.GetCurSel() 函数。为了不使显示的子对话框覆盖标签控件的显示,所以要获得标签控件的尺寸然后设置各页面的尺寸。

2. visual studio怎么手动添加工具箱控件

在你已有的项目的基础上,点击“视图”会出现下面图片的内容,然后点击“工具箱”,跳到第2步骤。

出现下图的内容,但什么都没有,跳到第3步骤。

在空白处点击右键,会出现下图内容,然后点击“选择项”,跳到第4步骤。

然后点击“Silverlight组件”,如果下面方框没有内容,就跳到第5步骤;如果有内容,就跳到第10步骤

打开电脑的“控制面板”,找到“程序和功能”,点进去,然后跳到第6步骤。

找到安装好的visual studio,点击然后再选择图中的“更改“,跳到第7步骤。

的一会儿会得到下面界面,选择”Modify“,跳到第8步骤。

选择”Windows and Web Developer Tools“下的”Silverlight Developer Kit“然后点击" Next ",接下来就是等待(关键还是看网速),安装完成之后,跳到第9步骤。

再在工具箱空白处点击右键,选择”显示全部“,跳到第10步骤。

下图看到的就是你想要的”控件“了。

3. C#中从视图里面打开工具箱但是为什么没有控件

ctrl
+
w,x启动toolbox
晕,你点菜单栏里view-〉toolbox也没有吗?
.....
那你这个还真是够奇怪了,我从2003开始用没见过这种情况...

4. 我想在软件中加一个类似于VS工具箱的窗口,c#中有这种控件吗

1.可以直接分组的控件有,treeView
2.像qq一样的分组:自己用BUTTON或者PANEL写一个,可以用location货dock来改变
3.自己写控件,其实很简单的,DOWNLOAD点资料就ok了
4.第三方调用,比如DevComponents
记得给我点分哦!http://www.dotnetmagic.com/downloads/Magic174AndKrypton.zip
还有用NavBarControl这个,下载地址自己找
或者重写treeview
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using System.Drawing;
using System.Drawing.Drawing2D;

namespace SiteView.Ecc.MMC.UserContorls
{

/// <summary>
/// 继承TreeView控件,实现VS工具箱风格
/// </summary>
class ToolBox :TreeView
{

public ToolBox()
{

this.SetStyle(ControlStyles.OptimizedDoubleBuffer, true);
this.SetStyle(ControlStyles.EnableNotifyMessage, true);

this.ShowLines = false;
this.HotTracking = true;
this.FullRowSelect = true;
this.DrawMode = TreeViewDrawMode.OwnerDrawAll;

this.Nodes.Add("test");
}

/// <summary>
/// 重新DrawNode方法
/// </summary>
/// <param name="e"></param>
protected override void OnDrawNode(DrawTreeNodeEventArgs e)
{

//base.OnDrawNode(e);
if(e.Node.Level == 0)
{
DrawRoot(e);
}
else
{
DrawItem(e);
}

}

/// <summary>
/// 绘制根节点
/// </summary>
/// <param name="e"></param>
private void DrawRoot(DrawTreeNodeEventArgs e)
{

try
{
Rectangle rect = e.Bounds;
rect.Y += 1;
rect.Width -= 1;
rect.Height -= 3;

if(e.Node.IsSelected)
//if (e.State == TreeNodeStates.Marked || e.State == TreeNodeStates.Selected)
{
using (System.Drawing.Brush selBrush = new System.Drawing.SolidBrush(Color.FromArgb(225, 230, 232)))
using (System.Drawing.Pen outerPen = new System.Drawing.Pen(Color.FromArgb(49, 106, 197)))
{
e.Graphics.FillRectangle(selBrush, rect);
e.Graphics.DrawRectangle(outerPen, rect);
}
}
else
{
using (System.Drawing.Drawing2D.LinearGradientBrush lgBrush = new System.Drawing.Drawing2D.LinearGradientBrush(e.Bounds, Color.FromArgb(221, 220, 203), Color.FromArgb(196, 193, 176), LinearGradientMode.Vertical))
using (System.Drawing.Pen linePen = new System.Drawing.Pen(this.BackColor))
{
e.Graphics.FillRectangle(lgBrush, rect);
e.Graphics.DrawLine(linePen, 0, rect.Bottom - 2, rect.Width, rect.Bottom - 2);
}
}
if (e.Node.IsExpanded == true)
{
//e.Graphics.DrawImage(this.imageList3.Images[0], new Point(rect.Left + 3, rect.Top + 4));
e.Graphics.DrawImage(IconResource.expanded, new Rectangle(rect.Left + 3, rect.Top + 4, 10, 10));
}
else
{
e.Graphics.DrawImage(IconResource.collapsed, new Rectangle(rect.Left + 3, rect.Top + 4, 10, 10));
}

rect.Offset(16, 2);
e.Graphics.DrawString(e.Node.Text, new Font("Microsoft Sans Serif", 8.25F, FontStyle.Bold, GraphicsUnit.Point, ((byte)(0))), SystemBrushes.ControlText, rect.Location);
}
catch (Exception ex)
{
//隐藏错误
//log.Error("绘制根节点", ex);
}

}

private System.Drawing.Brush selBrush = new System.Drawing.SolidBrush(Color.FromArgb(175, Color.Gold));
private System.Drawing.Pen pen = SystemPens.HotTrack;
/// <summary>
/// 绘制子结点
/// </summary>
/// <param name="e"></param>
private void DrawItem(DrawTreeNodeEventArgs e)
{

try
{
Rectangle nodeTextRect = e.Bounds;

nodeTextRect.Width -= 1;
nodeTextRect.Height -= 1;

Rectangle rect = e.Bounds;
rect.Inflate(-1, -1);

if (e.Node.IsSelected)
{
e.Graphics.FillRectangle(selBrush, rect);
e.Graphics.DrawRectangle(pen, rect);
}
else
{
e.Graphics.FillRectangle(new System.Drawing.SolidBrush(e.Node.BackColor), e.Bounds);
e.Graphics.DrawRectangle(new System.Drawing.Pen(e.Node.BackColor), e.Bounds);
}

if (this.ImageList != null && e.Node.ImageIndex < this.ImageList.Images.Count)
{
e.Graphics.DrawImage(this.ImageList.Images[e.Node.ImageIndex], new Point(e.Bounds.Left + 3, e.Bounds.Top + 2));
}

nodeTextRect.Offset(20, 3);
e.Graphics.DrawString(e.Node.Text, this.Font, SystemBrushes.ControlText, nodeTextRect.Location);

}
catch (Exception ex)
{
//隐藏错误
//log.Error("绘制子节点", ex);
}
}
}
}
还有两个资源文件,一个加号图片(IconResource.expanded),一个减号图片(IconResource.collapsed)。你自己做两张图片加进去

5. C#工具箱中如何打开全部控件

时间控件在 组件(Components) 这一栏里

6. csharp的控件在哪

工具箱里面,Ctrl+w,x 这个是快捷键

7. C#工具箱的几个基本控件的使用

工具箱,右键抄你要添加控件的袭选项卡,在右键菜单里寻选择项”,如果是自己写的或者是第三方写的,“浏览”,找到你需要添加的工具包地址,如dll文件之类的,如果是framework内置的就直接在不同的选项卡里面找

8. 如何实现向Visual Studio的Toolbox添加控件

早在Visual Studio 2003时代,勇于实践的前人们在多次尝试后终于发现,要使用ToolBoxItems.Add方法对Toolbox添加包含控件的dll,必须念完三条准备咒语:
1. 激活当前ToolboxTab
toolboxTab.Activate();
2. 运行“View.PropertiesWindow”命令
dte.ExecuteCommand(“View.PropertiesWindow“, String.Empty);
3. 选择第一个控件(Pointer)
toolboxTab.ToolBoxItems.Item(1).Select();

咒语颂完,法力生效,我们终于可以随心所欲地使用ToolBoxItems.Add方法了。为什么必须念那三条咒语呢?笔者没有研究过。
好了,两年后,2003的兄弟,2005,法力更加强大,旧的控件注册代码移植过来全部失效。这时,VS Extensibility团队的高僧站了出来,提供了一段代码: http//code msdn.microsoft com/vsx/Release/ProjectReleases aspx?ReleaseId=147 代码的关键是…在注册控件之前,你必须创建一个”Dummy”的WinForms项目,并且,由于添加项目时的EnvDTE.Solution2.AddFromTemplate方法可能会持续很长一段时间,为了防止程序因停止响应,你需要实现IMessageFilter。然后这个方法怎么看也像是个偏门。。。总是不优雅。笔者未曾测试过这段代码。
也许是个补偿吧,最后,MS推出了ToolboxControlsInstaller (TCI) - 一个独立的package,终于提供了一个新的方法解决了Toolbox控件注册问题。对于VS 2005,TCI是一个单独的安装包,你需要另外下载并安装(包含在VS 2005 Version 4 SDK里)(http //www microsoft com/downloads/details aspx?familyid=51A5C65B-C020-4E08-8AC0-3EB9C06996F4&displaylang=en);对于VS 2008,它已经被集成在了VisualStudio里边,不需要额外的安装。要验证你的VisualStudio是否安装了TCI,检查以下注册表项即可: HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/VisualStudio/9.0/Packages/{2c298b35-07da-45f1-96a3-be55d91c8d7a} (对于2005,把”9.0″换成”8.0″){2c298b35-07da-45f1-96a3-be55d91c8d7a}即是TCI Package的GUID 新的魔法书出来了,自然要研习把玩一番。MS提供了一套VS 2008的SDK,包含了这样的代码示例。在这些示例中,大多用到的是MSBuild以及WiX配置来进行程序的编译,打包成安装程序,第一次看上去还是有点晕的。在研究了示例提供的WiX配置文件之后,了解到使用TCI注册Toolbox最核心的口诀是以下几条:
在你的安装包中引入Merge Mole - TbxCtrlsInstDefaultItemsCA.msm (在哪里找到它?{Program Files}/Microsoft Visual Studio 2008 SDK/VisualStudioIntegration/Redistributables)这个msm负责通知TCI有新的控件安装到了Toolbox中 - 这样下一次Visual Studio打开Toolbox的时候,就会自动安装那些新的ToolboxItem。当然,这个msm所做的事情,也可以自己写代码实现 - 但有现成的用又何乐不为呢!VS 2008 SDK: http //www microsoft com/downloads/details.aspx?FamilyID=30402623-93CA-479A-867C-04DC45164F5B&displaylang=en
将待安装的ToolboxItem写入注册表。
对于已在GAC内的控件Assembly,直接建立这样一个Key HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/VisualStudio/9.0/ToolboxControlsInstaller/LuxelLab.LabWinControl, Version=1.0.0.0, Culture=neutral, PublicKeyToken=e932685e2a14e8b1, processorArchitecture=MSIL 并为其创建一个无名的String Value - 这个就是Toolbox Tab的名称。该Assembly下边的所有Toolbox控件都会被自动安装到这个Toolbox Tab下边。

对于欲从文件系统安装的控件,在上一个Key的基础上,为其添加一个名为”Codebase”的String Value - 代表dll的位置

把”VisualStudio”替换成”VCExpress”,或者”VCSExpress”等等,即可实现为各种Express版本的IDE安装Toolbox Controls。该方法也适用于 WebControl,WPFControl的安装
好啦,就那么简单,下一次打开IDE的Toolbox时,在一小段”Initializing Toolbox”的功夫之后,安装的控件们就出现在工具箱里了(看不到?Show All试试),很可靠,童叟无欺。

9. visual studio 打开工具箱没有可用的控件,提示说“将某项拖至此文本可将其添加到工具箱”,应该怎么办

1、在你已有的项目的基础上点击“工具栏”。

阅读全文

与c像工具箱控件相关的资料

热点内容
steam令牌换设备了怎么办 浏览:246
新生测听力仪器怎么看结果 浏览:224
化学试验排水集气法的实验装置 浏览:156
家用水泵轴承位置漏水怎么回事 浏览:131
羊水镜设备多少钱一台 浏览:125
机械制图里型钢如何表示 浏览:19
测定空气中氧气含量实验装置如图所示 浏览:718
超声波换能器等级怎么分 浏览:800
3万轴承是什么意思 浏览:110
鑫旺五金制品厂 浏览:861
苏州四通阀制冷配件一般加多少 浏览:153
江北全套健身器材哪里有 浏览:106
水表阀门不开怎么办 浏览:109
花冠仪表盘怎么显示时速 浏览:106
洗砂机多少钱一台18沃力机械 浏览:489
超声波碎石用什么材料 浏览:607
组装实验室制取二氧化碳的简易装置的方法 浏览:165
怎么知道天然气充不了阀门关闭 浏览:902
公司卖旧设备挂什么科目 浏览:544
尚叶五金机电 浏览:59