Tag: custom controls

将IME放在从Control派生的自定义文本框中

我在C#.net 3.5中创建了自己的单行文本框控件 我从头开始写这个,包括我自己的选择代码,滚动,复制/粘贴等。它甚至可以选择从左到右的文本,而不是我曾经使用过的… 我遇到的问题是与IME(输入法编辑器)集成。 IME在某种程度上确实有效,但我遇到了一些问题。 我在这里列出其中一个。 通常,使用TextBox,IME构造将在TextBox中呈现。 但是,在我的控制中,IME显示在屏幕的右下角。 我试着查看其他自定义控件,包括SharpDevelop中使用的控件。 但是,这也存在同样的问题。 键入中文,日文或韩文导致IME的内容在屏幕的右下角完成。 我需要一些关于如何在我自己的文本框中完成此操作的指针,我查看了Windows API for IME,但是有很多function,我不知道从哪里开始。 那么,有什么想法吗? 如果任何代码示例都在C ++(托管/非托管)或VB.net中,那就没问题。 我可以轻松地移动它。

在其他控件上方显示透明加载微调器

我在旋转控制器中工作。 我希望控件支持透明背景色。 绘制弧线时,中间有一个空白区域,我希望该空间真正透明,这样我就可以在其后面放置另一个控件,它不会被旋转器覆盖。 我试过覆盖CreateParams void。 另外我设置样式以支持TransparentColor。 尝试重写OnPaintBackground无效,但我无法实现真正​​透明的背景色。 那么,你能建议我做什么?

带关闭和添加按钮的TabControl

我想让一个标签控件有一个“x”(关闭按钮)和“+”(新标签按钮)。 我找到了一个添加x button的解决方案,该选项卡现在看起来像这样: 但是我想现在添加一个+那个黑圈。 我不知道如何,我尝试绘制最后一个标签的Paint事件,如下所示: var p = tabs.TabPages[tabs.TabCount – 1]; p.Paint += new PaintEventHandler(tab_OnDrawPage); private void tab_OnDrawPage(object sender, PaintEventArgs e) { // e.ClipRectangle. e.Graphics.DrawString(“+”, new Font(“verdana”, 10, FontStyle.Bold), Brushes.Black, e.ClipRectangle.X + 10, e.ClipRectangle.Y + 10); } 但它并没有显示任何吸引力。 我想这与我传递给DrawString()调用的位置有关,但我不知道要使用的正确位置。 我使用+10将它从最后一个标签中拉出来。 如何解决? 我自己没有做过任何自定义绘图,我正在学习它。

如何用c#制作两个透明层?

有三个连续的图层, picturebox1(.jpg) -> label1 -> picturebox2(.png transparent)我想要的是使label1和pictrurebox2对pict​​urebox1透明,这样label1可以通过picturebox2看到但它无法正常工作.. public Form1() { InitializeComponent(); label1.Parent = pictureBox1; label1.BackColor = Color.Transparent; pictureBox2.Parent = pictureBox1; pictureBox2.BackColor = Color.Transparent; picturebox2.BringToFront(); } 所以请帮助我