使用组合框选择打开福彩12选5走势图

加入
3月31日,2020年
消息
24
编程经验
Beginner
大家好。
我想制作一个应用程序,其中不同的福彩12选5走势图将根据来自组合框的选择打开。下面是我想做什么
1587738494218.png.

如果我选择file1.pdf,然后单击“打开”按钮,然后在“RichText”框中打开福彩12选5走势图。与其他福彩12选5走势图相同(file2.pdf ....依此类推)。
此外,如果我在包含福彩12选5走势图的福彩12选5走势图夹中添加福彩12选5走势图,则将更新组合框。
任何建议或提示如何启动这一点。读什么?如何开始?因为我是一个新手

谢谢和最好的问候
 

jmplhinney.

C#论坛主持人
工作人员
加入
2011年4月23日
消息
3,720
地点
悉尼,澳大利亚
编程经验
10+
首先,您无法在一个中打开PDF福彩12选5走势图 RichTextBox. 控制。该控件可以显示纯文本或RTF文本,该文本是标记类似于包含文本本身和格式信息的HTML。如果要显示PDF福彩12选5走势图的内容,那么您需要一个专用的PDF组件或者一个了解PDF的Web浏览器控件。

至于 组合框 和福彩12选5走势图名/路径,我建议您执行以下操作:
C#:
var folder = new DirectoryInfo(folderPath);
var files = folder.GetFiles("*.pdf");

myComboBox.DisplayMember = "Name";
myComboBox.ValueMember = "FullName";
myComboBox.DataSource = files;
myComboBox.SelectedItem = null;
这将显示指定福彩12选5走势图夹中所有PDF福彩12选5走势图的名称。你可以处理 选择开运 事件的事件 组合框 并从中获取所选福彩12选5走势图的路径 选择value. 属性,然后用它做你的意愿。

如果您希望能够更新福彩12选5走势图列表(如果福彩12选5走势图夹内容更改,则可以使用a filesystemWatcher. 要在发生更改时监视福彩12选5走势图夹并引发事件的组件。我现在不会详细介绍。您应该做一些研究,并尽最大努力实现它,然后如果遇到问题,请询问更多。

尽管如此,你应该开始一个新的线程。请将每个线程保留到单个主题和每个主题到单个线程。我们不应该谈论填充a 组合框,在同一线程中显示PDF福彩12选5走势图内容和监视福彩12选5走势图夹。这就是为什么你需要做更多工作要将问题打破到较小的部分中,然后分别地址每个部分。询问有关特定问题的具体问题,而不是多步过程的每一部分都是一次。
 

sh

众所周知的成员
加入
2018年9月5日
消息
1,982
编程经验
10+
如果我选择file1.pdf,然后单击“打开”按钮,然后在“RichText”框中打开福彩12选5走势图。与其他福彩12选5走势图相同(file2.pdf ....依此类推)。
您需要一个PDF库来转换内容: 开发人员的领先PDF平台|迭代 - 我相信它也可以发短信。理想地搜索纳图克PDF文本: 尼古特画廊|匹配PDF文本的包 and take your pick.
此外,如果我在包含福彩12选5走势图的福彩12选5走势图夹中添加福彩12选5走势图,则将更新组合框。
我建议在新线程中运行一小时循环,以检查目录中的新福彩12选5走势图。如果福彩12选5走势图是新的,并且在列表中不存在,则它们将添加到它中。如果存在任何新福彩12选5走势图,则如果该值尚不存在于此,则将从Lest添加到ComboBox中。笔记;此示例使用具有委派的多线程跨线程示例,并将其发布。但是,这是伪代码......您需要的内容,您需要从#2或类似于获取源目录中的每个福彩12选5走势图的代码。我突出了你应该把所述代码的线条突出显示。
C#:
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private bool Run_While { get; set; }

        public void ExecuteThis()
        {
            /* Start a new thread and run it */
            Thread new_Thread = new Thread(Execute_Non_UI);
            new_Thread.Start();
        }

        public delegate void Call_Back_To(string new_Value);

        private void Update_UI(string this_NewString)
        {
            /* I am talking with your UI, and I can update your UI with the new value. */
            comboBox1.Items.Add(this_NewString);
        }
        private void Execute_Non_UI()
        {
            List<string> List_Of_Files = new List<string>();
            while (Run_While)
            {
                /* I am on a new thread, (the non UI thread) */
                /* Invoke the control, by calling on the delegation of the Update_UI method followed by the parameter value from the Update_UI method. */

                /* ****************** */
                if (!List_Of_Files.Contains("Some file"))
                List_Of_Files.Add("Your file paths here");
                /* Include the logic here for checking your folder for new files from your directory, to add to the combobox. */
                using (List<string>.Enumerator File = List_Of_Files.GetEnumerator())
                {
                    while (File.MoveNext())
                    {
                        if (!comboBox1.Items.Contains(File.Current))
                            comboBox1.Invoke(new Call_Back_To(Update_UI), File.Current); /* Here you apply the logic in JM's post to this code to add your PDF's to combobox. */
                    }
                }
                /* ****************** */

            }
        }
        private void button1_Click(object sender, EventArgs e)
        {
            if (!Run_While)
            {
                Run_While = true;
                ExecuteThis();
            }
            else
                Run_While = false;
        }
    }

按Right,您真的应该使用WPF而不是Winforms。 Winforms实际上是生命结束。实际上,微软不想再支持它,他们实际上是为了仍然使用Winforms应用程序的企业客户来做。然而,微软鼓励用户搬到WPF。

无论如何,我希望这有帮助。

编辑 - 在第41行修复错字
 
Last edited:
最佳 底部