Tag: winforms

从video文件中提取wav文件

我正在开发一个应用程序,我需要从video中提取音频。 音频需要以.wav格式提取,但我对video格式没有问题。 任何格式都可以,只要我可以在wav文件中提取音频。 目前我在Windows窗体中使用Windows Media Player COM控件来播放video,但任何其他嵌入式播放器也可以。 有关如何做到这一点的任何建议? 谢谢

如何使用图形突出显示控件中的包装文本?

我需要使用fill rect突出显示控件中的特定字符。 我可以通过使用如下的Graphics.MeasureString()方法获取文本的位置,如下所示, var size = g.MeasureString(tempSearchText, style.Font, 0, StringFormat.GenericTypographic); 如果文本被包装,那么我无法找到该字符的确切边界以突出显示该文本。 我需要在包装的文本中获得给定字符的确切界限。 提供您的建议以实现此方案。

C#app中exception的含义:“不是合法的OleAut日期”?

有谁知道这意味着什么。 在C#winforms应用程序中获取此信息: 不是合法的OleAut日期

当padding大于2时,计算datagridview的填充?

该演示程序有一个表格,上面绘有DataGridView 我已经用一些数据填充了DataGridView 这里有一些答案表明可以计算所有列的总宽度并添加两个,然后在不获取滚动条的情况下为DataGridView提供尽可能小的宽度。 我发现在这种情况下,由于某种原因,计算出的宽度太小,滚动条仍然存在。 在我给datagridview提供数据之后,我使用这3行。 fix_dgvw_efficientbutnotworking_wrongpadding(); dgvw代表datagridview的宽度。 该方法使用“BOS”中提到的答案将dataGridView大小调整为行和列的总大小但是,在这种情况下它似乎不起作用。 顺便说一句,有趣的是,如果datagridview只有一行数据,那么BOS的方法可以工作,那么填充就是两行。 但无论如何,我对这种情况感兴趣,其中datagridview有2行数据..并且该方法不起作用,因为填充不是两个。 你可以直观地看到(特别是如果你停在这里并且刚刚接下来的两行),你会看到,datagridview有滚动条。 MessageBox.Show(test_if_horizontal_scrollbars().ToString()); 上面的行中的这个消息框表示True,表示存在水平滚动条。 MessageBox.Show(fix_dgvw_inefficientbutworks().ToString()); 上面的一行运行的方法相当低效,不断增加datagridview的宽度,直到没有更多的滚动条。 它首先使用BOS的方法,它将宽度调整到合适的宽度,但有时仍然有滚动条,就像这里的情况一样,因此该方法将一次增加一个增量的宽度,直到没有更多的水平滚动条。 在这种情况下,我们看到填充必须再增加15次,我们看到消息框显示15.但这似乎是一种非常低效的查找和修复它的方法。 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace paddingfind { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs […]

如何在表单中打开表单?

我有一个父表单,我想在父表单中打开一个子表单。 可以这样做吗? 如果是,请回复我的示例代码。 谢谢 !

安装前显示自定义表单?

我正在为Windows应用程序创建一个设置,我想在用户点击设置时显示一个表单。 该表单将向用户请求密码。 正确的密码将导致正确安装设置,否则安装将被取消。 如果有人提供链接,怎么做呢。 提前致谢。

使用C#.NET 3.5 WinForms进行部分透明化?

我正在制作一个.NET 3.5应用程序,其表单绘制部分透明的黑色背景。 我正在重写OnPaintBackground来实现这个目标: protected override void OnPaintBackground( PaintEventArgs e ) { using ( Brush brush = new SolidBrush( Color.FromArgb( 155, Color.Black ) ) ) { e.Graphics.FillRectangle( brush, e.ClipRectangle ); } } 它可以工作,但偶尔表格会在不清除屏幕的情况下自行绘制,使透明度比应有的更深。 我曾尝试使用Graphics.Flush()和Graphics.Clear() ,但它无法帮助或完全删除透明度。 有什么建议? 编辑:在左侧启动应用程序后,以及在右侧重新绘制表单几次(以响应从一个控件到另一个控件的选项卡)后,它的外观如下: 透明度问题http://www.quicksnapper.com/files/5085/17725729384A10347269148_m.png 编辑2:我今天早上尝试了一些事情并注意到当透明部分后面的桌面发生变化时,实际上并没有重新绘制。 例如,如果我打开任务管理器并将其放在窗口后面,您就不会看到它自己刷新。 这与我在透明度水平上所看到的一样有道理。 是否有一个function可以让Windows重绘窗口后面的区域? 编辑3:我尝试更改窗体上的一些属性,但它们都导致窗体绘制非透明黑色: this.AllowTransparency = true; this.DoubleBuffered = true; this.Opacity = .99; 我将尝试为透明部分创建一个单独的窗口,如上所述,但仍然欢迎任何其他想法。

WebBrowser控件中的InvokeMember(“单击”)

网站显示基于表格的选项供您选择。 HTML是 我想调用字符串“setBank(11,0,1)”的无线电点击。 我如何能? 所有无线电名称都相同,但onclick()参数不同。 在JavaScript中有人这样做了一些代码在这里,但我如何在c#中这样做 我尝试这个但从不工作: if (webBrowser1.DocumentText.IndexOf(“setBank(11,0,1)”, StringComparison.InvariantCultureIgnoreCase) > 1) { webBrowser1.Document.GetElementById(“gatewayIDV”).InvokeMember(“click”); } JavaScript : $(“td.cont”).each(function(index) { var $this = $(this); var gonext = true; if($this.html().search(searchStr) != -1) { $(document).BookingEngine(“setAutomationRunningStatus”, !tabData.automationRunning); console.log(index+”:”+$this.html()+”:”); $this.children(“input[name=’gatewayIDV’]”).click(); gonext = false; } return gonext; });

在CheckBoxList中使用数据源

我在Windows窗体应用程序中使用CheckBoxList,并尝试为其应用数据源。 有一个DataTable,’dt’,列id , name和ischecked ,我使用这样的代码: ((ListBox)MyCheckBoxList).DataSource = dt; ((ListBox)MyCheckBoxList).DisplayMember = “name”; ((ListBox)MyCheckBoxList).ValueMember = “id”; 如何为MyCheckBoxList中的所有项设置CheckState? 我将此值保存在我的数据表中,并希望将它们与MyCheckBoxList链接。

从c#winform中的另一个表单更新gridview列值?

我有两个winforms MainForm和GridForm 在MainForm.cs中 使用foreach逐个执行cmd rmdir命令 现在我想显示所有directory name列表及其status name是否为进程。 foreach (var item in listBox1.Items) { System.Diagnostics.Process.Start(“cmd.exe”, “/c rmdir ” + item); // want to show inside gridview in GridForm which folder is done – so uodate status as done var p = proc.ExitCode; string status; if (p == 1){ status = “fail”} else {status = “success”} […]