如何在C#2.0中创建Delphi TSpeedButton或SpeedButton?
如何在C#2.0中创建Delphi TSpeedButton或SpeedButton?有帮助吗?看起来您必须处理OnPaint事件,而不是聚焦…常规的.net 2.0按钮支持TSpeedbutton的部分功能:如何在C#2.0中创建Delphi TSpeedButton或SpeedButton?,c#,delphi,C#,Delphi,如何在C#2.0中创建Delphi TSpeedButton或SpeedButton?有帮助吗?看起来您必须处理OnPaint事件,而不是聚焦…常规的.net 2.0按钮支持TSpeedbutton的部分功能: 图示符:图像 扁平:扁平样式 它不处理: 向下 团体 这两者是相关的,您可以从按钮继承,并拥有它,添加和分组功能 我想知道你是想创建一个像TSpeedButton这样的控件,还是只需要相同的最终结果 从头开始编程当然是可能的,但我只把它作为一种学习练习来处理 假设你想要达到类似的
- 图示符:图像
- 扁平:扁平样式
- 向下
- 团体
我想知道你是想创建一个像TSpeedButton这样的控件,还是只需要相同的最终结果 从头开始编程当然是可能的,但我只把它作为一种学习练习来处理 假设你想要达到类似的最终结果 Delphi的TSpeedButton与开发人员认为有用的标准TButton有所不同——它是扁平的,没有焦点,并且比常规按钮消耗更少的资源(因为它没有底层的Windows句柄) 以下哪项对你很重要 如果您只是想要一个不接受焦点的平面按钮,请使用FlatStyle=flat(或PopUp)和TabStop=false的常规按钮。您可以通过设置Image属性或ImageList和ImageIndex/ImageKey的组合来配置图示符 另一种选择是寻找一个现有的按钮组件,它可以满足您的需求——一个可以查看的地方是Krypton工具包(免费使用,请参阅) 如果您希望减少应用程序所消耗的资源数量,那么您可以从别处获得更好的回报
在Windows3.1(Delphi1)和Windows95(Delphi2)时代,可用句柄的数量受到严格限制,系统范围内可用句柄的数量最多。如今,使用Windows XP和Vista,可用句柄的数量要高得多,而且是每个进程的句柄数量,而不是整个系统的句柄数量。除非您正在创建成千上万个按钮,否则您不太可能在任何地方接近用完按钮。使用按钮并将TabStop属性设置为false仅在点击表单时有效 如果你需要(像我一样)一个在点击时没有被选中的按钮,我发现只有一种方法可以做到这一点 我这样做的方式是对Button类进行子类化,并在构造函数中调用SetStyles,从而将Selective设置为false,如下所示:
public class ButtonNoFocus : Button
{
public ButtonNoFocus()
: base()
{
base.SetStyle(ControlStyles.Selectable, false);
}
}
这对我来说是可行的,如果你有一个带有按钮的控制面板,可以对所选对象执行操作,那么这是完美的…你到底想复制什么功能?当有人单击按钮时,我想复制“无焦点”功能。原因:我正在尝试在windows应用程序中创建嵌入式键盘。在按下键盘按钮之前,此键盘需要能够将按键笔划发送到具有焦点的控件。